/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
 * Filename:
 * ---------
 *  TrueMan.c
 *
 * Project:
 * --------
 *   Maui
 *
 * Description:
 * ------------
 *  Game TrueMan
 *
 * Author:
 * -------
 * -------
 * -------
 *
 ****************************************************************************/

#include "mmi_features.h"
#include "GameDefs.h"

#if defined(__MMI_GAME_TRUEMAN__)
#include "GameInc.h"
#include "TrueManProts.h"
#include "mmi_rp_app_games_def.h"

#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
#include "GameProts.h"
#endif


/*****************************************************************************
* Game multi language support
*****************************************************************************/
#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
typedef enum
{
    MMI_TRUEMAN_STRING_SCORE,
    MMI_TRUEMAN_STRING_FLY_MARK,
    MMI_TRUEMAN_STRING_TOTAL
}mmi_trueman_string_enum;
#endif

/*****************************************************************************
* Define
*****************************************************************************/
#if defined(__MMI_MAINLCD_128X128__)
#define MMI_GX_TRUEMAN_LCD_HEIGHT           (128)
#define MMI_GX_TRUEMAN_LCD_WIDTH            (128)
#define MMI_GX_TRUEMAN_GAME_ORIGIN_Y        (32)

#define MMI_GX_TRUEMAN_ROLE_WIDTH           (15) //IMG_ID_GX_TRUEMAN_ROLE Width
#define MMI_GX_TRUEMAN_ROLE_HEIGHT          (17)  //IMG_ID_GX_TRUEMAN_ROLE Height
#define MMI_GX_TRUEMAN_STEP_WIDTH          (32) //IMG_ID_GX_TRUEMAN_STEP Width
#define MMI_GX_TRUEMAN_STEP_HEIGHT         (10) //IMG_ID_GX_TRUEMAN_STEP Height
#define MMI_GX_TRUEMAN_THORN_HEIGHT         (10) //IMG_ID_GX_TRUEMAN_THORN Height
#define MMI_GX_TRUEMAN_GAME_HEIGHT          (95) //LCD Height - MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1
#define MMI_GX_TRUEMAN_EASY_SPEED           (1)
#define MMI_GX_TRUEMAN_NORMAL_SPEED         (2)
#define MMI_GX_TRUEMAN_HARD_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED    (2)
#define MMI_GX_TRUEMAN_DIGIT_WIDTH          (4) //IMG_ID_GX_TRUEMAN_NUMBER_0 Width
#define MMI_GX_TRUEMAN_DIGIT_HEIGHT          (7) //IMG_ID_GX_TRUEMAN_NUMBER_0 Height
#define MMI_GX_TRUEMAN_TITLE_X (2)  //MMI_GX_TRUEMAN_LCD_WIDTH / 10
#define MMI_GX_TRUEMAN_TITLE_Y (2) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_TITLE Height) / 2
#define MMI_GX_TRUEMAN_BOX_X (96) // (LCD Width - IMG_ID_GX_TRUEMAN_BOX Width) - 6
#define MMI_GX_TRUEMAN_BOX_Y (9) // (MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_BOX Height) / 2 
#define MMI_GX_TRUEMAN_BOX_WIDTH    (30) //IMG_ID_GX_TRUEMAN_BOX Width
#define MMI_GX_TRUEMAN_BOX_HEIGHT  (11) //IMG_ID_GX_TRUEMAN_BOX Height
#define MMI_GX_TRUEMAN_SCORE_X (MMI_GX_TRUEMAN_BOX_X) 
#define MMI_GX_TRUEMAN_SCORE_Y (2) //(MMI_GX_TRUEMAN_BOX_Y - IMG_ID_GX_TRUEMAN_SCORE Height - 2)
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 (84) // MMI_GX_TRUEMAN_TITLE_X + IMG_ID_GX_TRUEMAN_TITLE Width + 1
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1 (4) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_ENERGY_BAR Height) / 2
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1+7) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Width
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1+26) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Height
#define MMI_GX_TRUEMAN_ENERGY_X MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1
#define MMI_GX_TRUEMAN_ENERGY_Y MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1
#define MMI_GX_TRUEMAN_FLYING_MARK_X1 (68) // MMI_GX_TRUEMAN_BOX_X - IMG_ID_GX_TRUEMAN_FLYING_MARK Width - 6
#define MMI_GX_TRUEMAN_FLYING_MARK_Y1 (12) // (MMI_GX_TRUEMAN_BOX_Y + MMI_GX_TRUEMAN_SCORE_Y)/2
#define MMI_GX_TRUEMAN_FLYING_MARK_X2 (MMI_GX_TRUEMAN_FLYING_MARK_X1 + 13) // MMI_GX_TRUEMAN_FLYING_MARK_X1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Width + 1
#define MMI_GX_TRUEMAN_FLYING_MARK_Y2 (MMI_GX_TRUEMAN_FLYING_MARK_Y1 + 13) // MMI_GX_TRUEMAN_FLYING_MARK_Y1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Height + 1
#define MMI_GX_TRUEMAN_SCORE_SHIFT_X (116) //MMI_GX_TRUEMAN_BOX_X + IMG_ID_GX_TRUEMAN_BOX Width - IMG_ID_GX_TRUEMAN_NUMBER_0 Width - 2
#define MMI_GX_TRUEMAN_SCORE_SHIFT_Y (12) // MMI_GX_TRUEMAN_BOX_Y + (IMG_ID_GX_TRUEMAN_BOX Height - IMG_ID_GX_TRUEMAN_NUMBER_0 Height) / 2

#define MMI_GX_TRUEMAN_STEP_BORDER_MARGIN (4)

#elif defined(__MMI_MAINLCD_128X160__)

#define MMI_GX_TRUEMAN_LCD_HEIGHT           (160)
#define MMI_GX_TRUEMAN_LCD_WIDTH            (128)
#define MMI_GX_TRUEMAN_GAME_ORIGIN_Y        (32)

#define MMI_GX_TRUEMAN_ROLE_WIDTH           (15) //IMG_ID_GX_TRUEMAN_ROLE Width
#define MMI_GX_TRUEMAN_ROLE_HEIGHT          (17)  //IMG_ID_GX_TRUEMAN_ROLE Height
#define MMI_GX_TRUEMAN_STEP_WIDTH          (32) //IMG_ID_GX_TRUEMAN_STEP Width
#define MMI_GX_TRUEMAN_STEP_HEIGHT         (10) //IMG_ID_GX_TRUEMAN_STEP Height
#define MMI_GX_TRUEMAN_THORN_HEIGHT         (10) //IMG_ID_GX_TRUEMAN_THORN Height
#define MMI_GX_TRUEMAN_GAME_HEIGHT          (127) //LCD Height - MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1
#define MMI_GX_TRUEMAN_EASY_SPEED           (1)
#define MMI_GX_TRUEMAN_NORMAL_SPEED         (2)
#define MMI_GX_TRUEMAN_HARD_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED    (2)
#define MMI_GX_TRUEMAN_DIGIT_WIDTH          (4) //IMG_ID_GX_TRUEMAN_NUMBER_0 Width
#define MMI_GX_TRUEMAN_DIGIT_HEIGHT          (7) //IMG_ID_GX_TRUEMAN_NUMBER_0 Height
#define MMI_GX_TRUEMAN_TITLE_X (2)  //MMI_GX_TRUEMAN_LCD_WIDTH / 10
#define MMI_GX_TRUEMAN_TITLE_Y (2) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_TITLE Height) / 2
#define MMI_GX_TRUEMAN_BOX_X (96) // (LCD Width - IMG_ID_GX_TRUEMAN_BOX Width) - 6
#define MMI_GX_TRUEMAN_BOX_Y (9) // (MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_BOX Height) / 2 
#define MMI_GX_TRUEMAN_BOX_WIDTH    (30) //IMG_ID_GX_TRUEMAN_BOX Width
#define MMI_GX_TRUEMAN_BOX_HEIGHT  (11) //IMG_ID_GX_TRUEMAN_BOX Height
#define MMI_GX_TRUEMAN_SCORE_X (MMI_GX_TRUEMAN_BOX_X) 
#define MMI_GX_TRUEMAN_SCORE_Y (2) //(MMI_GX_TRUEMAN_BOX_Y - IMG_ID_GX_TRUEMAN_SCORE Height - 2)
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 (84) // MMI_GX_TRUEMAN_TITLE_X + IMG_ID_GX_TRUEMAN_TITLE Width + 1
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1 (4) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_ENERGY_BAR Height) / 2
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1+7) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Width
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1+26) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Height
#define MMI_GX_TRUEMAN_ENERGY_X MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1
#define MMI_GX_TRUEMAN_ENERGY_Y MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1 
#define MMI_GX_TRUEMAN_FLYING_MARK_X1 (68) // MMI_GX_TRUEMAN_BOX_X - IMG_ID_GX_TRUEMAN_FLYING_MARK Width - 6
#define MMI_GX_TRUEMAN_FLYING_MARK_Y1 (12) // (MMI_GX_TRUEMAN_BOX_Y + MMI_GX_TRUEMAN_SCORE_Y)/2
#define MMI_GX_TRUEMAN_FLYING_MARK_X2 (MMI_GX_TRUEMAN_FLYING_MARK_X1 + 13) // MMI_GX_TRUEMAN_FLYING_MARK_X1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Width + 1
#define MMI_GX_TRUEMAN_FLYING_MARK_Y2 (MMI_GX_TRUEMAN_FLYING_MARK_Y1 + 13) // MMI_GX_TRUEMAN_FLYING_MARK_Y1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Height + 1
#define MMI_GX_TRUEMAN_SCORE_SHIFT_X (116) //MMI_GX_TRUEMAN_BOX_X + IMG_ID_GX_TRUEMAN_BOX Width - IMG_ID_GX_TRUEMAN_NUMBER_0 Width - 2
#define MMI_GX_TRUEMAN_SCORE_SHIFT_Y (12) // MMI_GX_TRUEMAN_BOX_Y + (IMG_ID_GX_TRUEMAN_BOX Height - IMG_ID_GX_TRUEMAN_NUMBER_0 Height) / 2

#define MMI_GX_TRUEMAN_STEP_BORDER_MARGIN (4)

#elif defined(__MMI_MAINLCD_176X220__)

#define MMI_GX_TRUEMAN_LCD_HEIGHT           (220)
#define MMI_GX_TRUEMAN_LCD_WIDTH            (176)
#define MMI_GX_TRUEMAN_GAME_ORIGIN_Y        (44)

#define MMI_GX_TRUEMAN_ROLE_WIDTH           (20) //IMG_ID_GX_TRUEMAN_ROLE Width
#define MMI_GX_TRUEMAN_ROLE_HEIGHT          (23)  //IMG_ID_GX_TRUEMAN_ROLE Height
#define MMI_GX_TRUEMAN_STEP_WIDTH          (43) //IMG_ID_GX_TRUEMAN_STEP Width
#define MMI_GX_TRUEMAN_STEP_HEIGHT         (13) //IMG_ID_GX_TRUEMAN_STEP Height
#define MMI_GX_TRUEMAN_THORN_HEIGHT         (14) //IMG_ID_GX_TRUEMAN_THORN Height
#define MMI_GX_TRUEMAN_GAME_HEIGHT          (175) //LCD Height - MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1
#define MMI_GX_TRUEMAN_EASY_SPEED           (2)
#define MMI_GX_TRUEMAN_NORMAL_SPEED         (3)
#define MMI_GX_TRUEMAN_HARD_SPEED           (4)
#define MMI_GX_TRUEMAN_ROLE_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED    (2)
#define MMI_GX_TRUEMAN_DIGIT_WIDTH          (6) //IMG_ID_GX_TRUEMAN_NUMBER_0 Width
#define MMI_GX_TRUEMAN_DIGIT_HEIGHT          (10) //IMG_ID_GX_TRUEMAN_NUMBER_0 Height
#define MMI_GX_TRUEMAN_TITLE_X (2)  
#define MMI_GX_TRUEMAN_TITLE_Y (2) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_TITLE Height) / 2
#define MMI_GX_TRUEMAN_BOX_X (130) // (LCD Width - IMG_ID_GX_TRUEMAN_BOX Width) - 6
#define MMI_GX_TRUEMAN_BOX_Y (15) // (MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_BOX Height) / 2
#define MMI_GX_TRUEMAN_BOX_WIDTH    (40) //IMG_ID_GX_TRUEMAN_BOX Width
#define MMI_GX_TRUEMAN_BOX_HEIGHT  (14) //IMG_ID_GX_TRUEMAN_BOX Height
#define MMI_GX_TRUEMAN_SCORE_X (MMI_GX_TRUEMAN_BOX_X) 
#define MMI_GX_TRUEMAN_SCORE_Y (4) //(MMI_GX_TRUEMAN_BOX_Y - IMG_ID_GX_TRUEMAN_SCORE Height - 2)
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 (63) // MMI_GX_TRUEMAN_TITLE_X + IMG_ID_GX_TRUEMAN_TITLE Width + 1
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1 (4) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_ENERGY_BAR Height) / 2
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1+9) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Width
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1+36) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Height
#define MMI_GX_TRUEMAN_ENERGY_X MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1
#define MMI_GX_TRUEMAN_ENERGY_Y MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1
#define MMI_GX_TRUEMAN_FLYING_MARK_X1 (107) // MMI_GX_TRUEMAN_BOX_X - IMG_ID_GX_TRUEMAN_FLYING_MARK Width - 6
#define MMI_GX_TRUEMAN_FLYING_MARK_Y1 (10) // (MMI_GX_TRUEMAN_BOX_Y + MMI_GX_TRUEMAN_SCORE_Y)/2
#define MMI_GX_TRUEMAN_FLYING_MARK_X2 (MMI_GX_TRUEMAN_FLYING_MARK_X1 + 18) // MMI_GX_TRUEMAN_FLYING_MARK_X1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Width + 1
#define MMI_GX_TRUEMAN_FLYING_MARK_Y2 (MMI_GX_TRUEMAN_FLYING_MARK_Y1 + 18) // MMI_GX_TRUEMAN_FLYING_MARK_Y1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Height + 1
#define MMI_GX_TRUEMAN_SCORE_SHIFT_X (162) //MMI_GX_TRUEMAN_BOX_X + IMG_ID_GX_TRUEMAN_BOX Width - IMG_ID_GX_TRUEMAN_NUMBER_0 Width - 2
#define MMI_GX_TRUEMAN_SCORE_SHIFT_Y (17) // MMI_GX_TRUEMAN_BOX_Y + (IMG_ID_GX_TRUEMAN_BOX Height - IMG_ID_GX_TRUEMAN_NUMBER_0 Height) / 2

#define MMI_GX_TRUEMAN_STEP_BORDER_MARGIN (5)

#elif defined(__MMI_MAINLCD_240X320__)

#define MMI_GX_TRUEMAN_LCD_HEIGHT           (320)
#define MMI_GX_TRUEMAN_LCD_WIDTH            (240)
#define MMI_GX_TRUEMAN_GAME_ORIGIN_Y        (64)

#define MMI_GX_TRUEMAN_ROLE_WIDTH           (28) //IMG_ID_GX_TRUEMAN_ROLE Width
#define MMI_GX_TRUEMAN_ROLE_HEIGHT          (32)  //IMG_ID_GX_TRUEMAN_ROLE Height
#define MMI_GX_TRUEMAN_STEP_WIDTH          (49) //IMG_ID_GX_TRUEMAN_STEP Width
#define MMI_GX_TRUEMAN_STEP_HEIGHT         (16) //IMG_ID_GX_TRUEMAN_STEP Height
#define MMI_GX_TRUEMAN_THORN_HEIGHT         (26) //IMG_ID_GX_TRUEMAN_THORN Height
#define MMI_GX_TRUEMAN_GAME_HEIGHT          (255) //LCD Height - MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1
#define MMI_GX_TRUEMAN_EASY_SPEED           (2)
#define MMI_GX_TRUEMAN_NORMAL_SPEED         (3)
#define MMI_GX_TRUEMAN_HARD_SPEED           (4)
#define MMI_GX_TRUEMAN_ROLE_SPEED           (3)
#define MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED    (2)
#define MMI_GX_TRUEMAN_DIGIT_WIDTH          (7) //IMG_ID_GX_TRUEMAN_NUMBER_0 Width
#define MMI_GX_TRUEMAN_DIGIT_HEIGHT          (14) //IMG_ID_GX_TRUEMAN_NUMBER_0 Height
#define MMI_GX_TRUEMAN_TITLE_X (2)  
#define MMI_GX_TRUEMAN_TITLE_Y (2) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_TITLE Height) / 2
#define MMI_GX_TRUEMAN_BOX_X (178) // (LCD Width - IMG_ID_GX_TRUEMAN_BOX Width) - 6
#define MMI_GX_TRUEMAN_BOX_Y (21) // (MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_BOX Height) / 2
#define MMI_GX_TRUEMAN_BOX_WIDTH    (56) //IMG_ID_GX_TRUEMAN_BOX Width
#define MMI_GX_TRUEMAN_BOX_HEIGHT  (22) //IMG_ID_GX_TRUEMAN_BOX Height
#define MMI_GX_TRUEMAN_SCORE_X (MMI_GX_TRUEMAN_BOX_X) 
#define MMI_GX_TRUEMAN_SCORE_Y (5) //(MMI_GX_TRUEMAN_BOX_Y - IMG_ID_GX_TRUEMAN_SCORE Height - 2)
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 (86) // MMI_GX_TRUEMAN_TITLE_X + IMG_ID_GX_TRUEMAN_TITLE Width + 1
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1 (6) //(MMI_GX_TRUEMAN_GAME_ORIGIN_Y - IMG_ID_GX_TRUEMAN_ENERGY_BAR Height) / 2
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1+13) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Width
#define MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y2 (MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1+52) //MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1 + IMG_ID_GX_TRUEMAN_ENERGY_BAR Height
#define MMI_GX_TRUEMAN_ENERGY_X MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1
#define MMI_GX_TRUEMAN_ENERGY_Y MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1
#define MMI_GX_TRUEMAN_FLYING_MARK_X1 (148) // MMI_GX_TRUEMAN_BOX_X - IMG_ID_GX_TRUEMAN_FLYING_MARK Width - 6
#define MMI_GX_TRUEMAN_FLYING_MARK_Y1 (13) // (MMI_GX_TRUEMAN_BOX_Y + MMI_GX_TRUEMAN_SCORE_Y)/2
#define MMI_GX_TRUEMAN_FLYING_MARK_X2 (MMI_GX_TRUEMAN_FLYING_MARK_X1 + 25) // MMI_GX_TRUEMAN_FLYING_MARK_X1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Width + 1
#define MMI_GX_TRUEMAN_FLYING_MARK_Y2 (MMI_GX_TRUEMAN_FLYING_MARK_Y1 + 27) // MMI_GX_TRUEMAN_FLYING_MARK_Y1 +  IMG_ID_GX_TRUEMAN_FLYING_MARK Height + 1
#define MMI_GX_TRUEMAN_SCORE_SHIFT_X (223) //MMI_GX_TRUEMAN_BOX_X + IMG_ID_GX_TRUEMAN_BOX Width - IMG_ID_GX_TRUEMAN_NUMBER_0 Width - 2
#define MMI_GX_TRUEMAN_SCORE_SHIFT_Y (25) // MMI_GX_TRUEMAN_BOX_Y + (IMG_ID_GX_TRUEMAN_BOX Height - IMG_ID_GX_TRUEMAN_NUMBER_0 Height) / 2

#define MMI_GX_TRUEMAN_STEP_BORDER_MARGIN (6)

#endif


#if !defined(GDI_USING_LAYER)
#ifdef __MMI_MAINLCD_176X220__
#define MMI_GX_TRUEMAN_BACKGROUND_COLOR     (gui_color(84, 124, 144))
#else
#define MMI_GX_TRUEMAN_BACKGROUND_COLOR     (gui_color(130, 105, 36))
#endif
#endif

#define MMI_GX_TRUEMAN_GAMEOVER_BG_COLOR  (gdi_act_color_from_rgb(255, 27, 36, 47))

#define MMI_GX_TRUEMAN_LIGHT_BORDER         (gui_color(133, 133, 133))
#define MMI_GX_TRUEMAN_DARK_BORDER          (gui_color(16, 16, 16))
#define MMI_GX_TRUEMAN_EASY                 (0)
#define MMI_GX_TRUEMAN_NORMAL               (1)
#define MMI_GX_TRUEMAN_HARD                 (2)
#define MMI_GX_TRUEMAN_STEP_COUNT          (8)   /* the space between two steps is MMI_GX_TRUEMAN_ROLE_HEIGHT + MMI_GX_TRUEMAN_STEP_HEIGHT pixels */
#define MMI_GX_TRUEMAN_NORMAL_STEP         (0)
#define MMI_GX_TRUEMAN_THORN_STEP          (1)
#define MMI_GX_TRUEMAN_FLOATING_STEP       (2)
#define MMI_GX_TRUEMAN_STEP_TYPE_COUNT     (3)
#define MMI_GX_TRUEMAN_STEP_LIFE_TIME      (8)
#define MMI_GX_TRUEMAN_ROLE_FLYING_TIME     (15)
#define MMI_GX_TRUEMAN_INVINCIBLE_INTERVAL  (18)
#define MMI_GX_TRUEMAN_ROLE_FLYING_STATE    (0)
#define MMI_GX_TRUEMAN_ROLE_FALLING_STATE   (1)
#define MMI_GX_TRUEMAN_ROLE_DYING_STATE     (2)
#define MMI_GX_TRUEMAN_ROLE_NORMAL_STATE    (3)
#define MMI_GX_TRUEMAN_ROLE_MAX_ENERGY      (5)
#define MMI_GX_TRUEMAN_FALLING_LEFT         (0)
#define MMI_GX_TRUEMAN_FALLING_RIGHT        (1)
#define MMI_GX_TRUEMAN_FALLING_STRAIGHT     (2)
#define MMI_GX_TRUEMAN_WALKING_LEFT         (0)
#define MMI_GX_TRUEMAN_WALKING_RIGHT        (1)
#define MMI_GX_TRUEMAN_WALKING_STAND     (2)

#if defined(GDI_USING_LAYER)
//#define MMI_GX_TRUEMAN_BACKGROUND_SPEED  (MMI_GX_TRUEMAN_EASY_SPEED / 2)
#define MMI_GX_TRUEMAN_MARGIN_COLOR         (gui_color(0, 0, 255))

#endif /* defined(GDI_USING_LAYER) */

/*****************************************************************************
* Typedef
*****************************************************************************/
typedef struct t_trueman_node
{
    struct t_trueman_node *previous;
    struct t_trueman_node *next;
    U8 old_x;
    U8 x;
    S16 old_y;
    S16 y;
    U8 type;
    U8 life_time;
} gx_trueman_step_struct;

typedef struct
{
    S16 x;
    S16 y;
    S16 old_x;
    S16 old_y;
    U8 flying_time;
    U8 state;
    S16 automatic_x_vector;
    U8 invincible_time;
    gx_trueman_step_struct *current_step;
} gx_trueman_role_struct;

#if defined(GDI_USING_LAYER)
typedef struct t_trueman_bg_node
{
    MMI_ID_TYPE image_id;
    struct t_trueman_bg_node *next;
} gx_trueman_bg_node_struct;
#endif /* defined(GDI_USING_LAYER) */

/* game context */
typedef struct
{
    BOOL is_gameover;
    BOOL is_new_game;
    U8 game_level;
    S16 game_grade;
    U16 timer_elapse;

    U32 tick;
    BOOL is_left_pressed;
    BOOL is_right_pressed;
    BOOL is_flying_key_pressed;
    U8 game_speed;
    U8 energy;
    U8 falling_direction;
    U8 walking_direction;

    gx_trueman_step_struct step[MMI_GX_TRUEMAN_STEP_COUNT];
    gx_trueman_step_struct *first_step;
    gx_trueman_step_struct *last_step;
    gx_trueman_step_struct *first_empty_step;
    gx_trueman_step_struct *last_empty_step;

    gx_trueman_role_struct role;

#if defined(GDI_USING_LAYER)
    gdi_handle background;
    gdi_handle foreground;
    S16 first_bg_position_y;
#endif /* defined(GDI_USING_LAYER) */

    S32 tmp;

    //PU8 bg_layer_buf_ptr;
} gx_trueman_context_struct;

/*****************************************************************************
* Local Variable
*****************************************************************************/
gx_trueman_context_struct g_gx_trueman_context =
{
    FALSE,  /* is_gameover */
    TRUE,   /* is_new_game */
    0,      /* game_level */
    0,      /* game_grade */
    100     /* timer_elapse */
};

#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
static U16 mmi_trueman_language_index;
#define MMI_TRUEMAN_STRING_COUNT MMI_TRUEMAN_STRING_TOTAL
#endif

/*****************************************************************************
* Local Function
*****************************************************************************/
/* Game framework related functions */
S16 mmi_gx_trueman_calc_best_grade(S16 old_grade, S16 new_grade); /* descide which is best grade */
void mmi_gx_trueman_enter_game(void);     /* entry function of the game */
void mmi_gx_trueman_exit_game(void);      /* exit function - usually will stop timer and release buffer */
void mmi_gx_trueman_draw_gameover(void);  /* draw gameover screen */

/* Game play functions */
void mmi_gx_trueman_framemove(void);
void mmi_gx_trueman_render(void);
void mmi_gx_trueman_gameover(void);
void mmi_gx_trueman_cyclic_timer(void);
void mmi_gx_trueman_init_game(void);  /* draw gameover screen */
void mmi_gx_trueman_left_key_release(void);
void mmi_gx_trueman_left_key_press(void);
void mmi_gx_trueman_right_key_release(void);
void mmi_gx_trueman_right_key_press(void);
void mmi_gx_trueman_draw_static_foreground(void);
void mmi_gx_trueman_draw_energy(U8 energy);
void mmi_gx_trueman_draw_score(void);
void mmi_gx_trueman_init_trueman_list(void);
void mmi_gx_trueman_draw_thorn(void);
void mmi_gx_trueman_flying_key_press(void);
void mmi_gx_trueman_flying_key_release(void);
U8 mmi_gx_trueman_get_trueman_type(void);

#if defined(GDI_USING_LAYER)
void mmi_gx_trueman_draw_static_background(void);
#endif /* defined(GDI_USING_LAYER) */

/************************************************************************/
/* Audio [Const]                                                        */
/************************************************************************/

#define  STEPBREAK_WAV (8660)

__align(2)
const U8 StepBreak_wav[8660] =
{
    0x52, 0x49, 0x46, 0x46, 0xA0, 0x43, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
    0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x44, 0xAC, 0x00, 0x00, 0x6D, 0x56, 0x00, 0x00,
    0x00, 0x04, 0x04, 0x00, 0x02, 0x00, 0xF9, 0x07, 0x66, 0x61, 0x63, 0x74, 0x04, 0x00, 0x00, 0x00,
    0x5F, 0x86, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x6C, 0x43, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
    0xFF, 0x13, 0x82, 0x79, 0x0B, 0x08, 0xFB, 0x4F, 0x10, 0x1A, 0x20, 0xB7, 0x80, 0xB0, 0x05, 0x37,
    0xF0, 0xE3, 0x61, 0x81, 0x19, 0x09, 0x83, 0xBE, 0x60, 0x81, 0x00, 0xC8, 0x0C, 0x08, 0x90, 0x91,
    0x00, 0xA0, 0x91, 0xC4, 0xB3, 0xBE, 0xD7, 0x08, 0x95, 0xD2, 0xB3, 0x93, 0xA2, 0xF2, 0xA1, 0x84,
    0xB1, 0x28, 0x91, 0xD0, 0x0A, 0x87, 0x09, 0xA2, 0x2D, 0x83, 0x11, 0x2C, 0x3A, 0x89, 0x0C, 0xB3,
    0x32, 0xE0, 0x55, 0x0C, 0xA1, 0xB4, 0x19, 0xB0, 0x16, 0xAA, 0xA8, 0x70, 0x90, 0x59, 0x99, 0x6A,
    0x19, 0x0B, 0x3A, 0x19, 0x19, 0x3F, 0x19, 0x2D, 0x10, 0x2A, 0x19, 0x0F, 0x30, 0x3B, 0x9A, 0x69,
    0x2C, 0x39, 0x09, 0x2B, 0x4D, 0x18, 0x19, 0x2C, 0x80, 0x2E, 0x00, 0x00, 0x98, 0x82, 0x80, 0x12,
    0xA9, 0x19, 0x7A, 0x24, 0xAD, 0xA1, 0x11, 0x97, 0xA9, 0x85, 0x19, 0xA1, 0x8B, 0x07, 0x98, 0x1B,
    0x69, 0x1B, 0x2C, 0x80, 0x20, 0xA8, 0xC3, 0x90, 0xF0, 0x11, 0x2C, 0x92, 0x98, 0xD3, 0xB1, 0xC7,
    0x02, 0xB8, 0x81, 0x96, 0x91, 0x00, 0x98, 0x92, 0x91, 0xF0, 0x12, 0x88, 0x80, 0x81, 0x91, 0x91,
    0x88, 0xB4, 0xF3, 0x30, 0x99, 0x91, 0x47, 0x09, 0xCA, 0xA4, 0xA1, 0x96, 0x0A, 0x08, 0x08, 0x38,
    0x28, 0xD4, 0x8A, 0x70, 0xA9, 0x80, 0x80, 0x90, 0x92, 0x21, 0xCF, 0x95, 0x81, 0x80, 0xC8, 0x84,
    0xC8, 0xA6, 0x80, 0x10, 0x80, 0x08, 0x08, 0x88, 0x00, 0x98, 0x7A, 0xA1, 0x48, 0xB9, 0x01, 0x0C,
    0xA4, 0x81, 0xA2, 0x90, 0xB2, 0x02, 0xE2, 0x36, 0x9D, 0x14, 0x8C, 0x80, 0x85, 0xC0, 0x08, 0xC4,
    0xB0, 0x84, 0x00, 0x88, 0x08, 0x90, 0x5C, 0x19, 0x29, 0xF1, 0x81, 0x1A, 0x99, 0x92, 0x58, 0xA9,
    0xA7, 0x01, 0x80, 0x80, 0x61, 0xAA, 0x90, 0x81, 0xD1, 0x12, 0x18, 0x82, 0x0D, 0x68, 0x08, 0xAA,
    0xA1, 0x92, 0x91, 0x81, 0xB7, 0x90, 0x31, 0xB8, 0x43, 0xF8, 0x08, 0x08, 0x90, 0x50, 0x1D, 0xA8,
    0x69, 0x09, 0xA2, 0xB9, 0x97, 0x00, 0xB8, 0x2A, 0xA6, 0x38, 0xAA, 0x3A, 0xB8, 0x83, 0x99, 0x12,
    0xB2, 0xCA, 0x47, 0x1D, 0x93, 0x20, 0x1F, 0x92, 0x10, 0x82, 0x3B, 0x0A, 0x96, 0xD9, 0xB4, 0x22,
    0x0B, 0x82, 0xAB, 0x12, 0x87, 0x98, 0xF3, 0x88, 0x81, 0x08, 0x18, 0x91, 0xD6, 0x81, 0x08, 0x88,
    0x80, 0xA1, 0x4A, 0x09, 0x00, 0xC8, 0x5F, 0x0A, 0x93, 0xA8, 0x01, 0xF1, 0xA3, 0x81, 0x2B, 0x2B,
    0x4A, 0x7B, 0xC1, 0xA2, 0x29, 0x31, 0x2E, 0x18, 0x88, 0xB0, 0x12, 0x29, 0x2A, 0xB7, 0x91, 0x59,
    0x01, 0x00, 0x39, 0x8F, 0x83, 0x08, 0x09, 0xAB, 0x07, 0x29, 0xDB, 0x02, 0x3C, 0xA8, 0x31, 0xAA,
    0xE4, 0x84, 0x0A, 0x98, 0x10, 0x30, 0xBC, 0x7B, 0x80, 0x08, 0xB9, 0x29, 0x6A, 0xE2, 0xB3, 0x91,
    0x80, 0xA3, 0x1B, 0x09, 0x35, 0x8F, 0x80, 0x50, 0x49, 0x9A, 0xA8, 0x85, 0xB0, 0x31, 0x88, 0x80,
    0x28, 0xC7, 0x01, 0x49, 0x1A, 0x19, 0x09, 0x02, 0x18, 0x9D, 0x31, 0x8A, 0xA7, 0xB9, 0x63, 0x0D,
    0x98, 0x11, 0x91, 0x89, 0x49, 0x0A, 0xC3, 0x11, 0x4C, 0x8B, 0x30, 0xCB, 0x1B, 0x51, 0x08, 0x19,
    0xF9, 0x04, 0xC9, 0x80, 0xB5, 0x82, 0xE1, 0x21, 0xA8, 0x02, 0x00, 0xB0, 0x2F, 0x93, 0x91, 0xE0,
    0x11, 0x18, 0x4A, 0x0A, 0x91, 0x96, 0x49, 0x1C, 0x20, 0xAA, 0x20, 0x2A, 0x89, 0xB7, 0x48, 0xA8,
    0xC4, 0x19, 0x69, 0x0A, 0x29, 0x99, 0xB5, 0x80, 0x18, 0x90, 0x84, 0x1C, 0x19, 0x19, 0xC5, 0x08,
    0x80, 0x90, 0xC2, 0x6C, 0x8A, 0x94, 0x18, 0x09, 0xE4, 0x20, 0x09, 0x9A, 0x94, 0x80, 0xC0, 0x03,
    0x10, 0xD8, 0x30, 0xA0, 0x10, 0xF3, 0x22, 0x3D, 0x2A, 0x8A, 0x00, 0xF2, 0x83, 0x1A, 0x28, 0x6D,
    0x0A, 0x08, 0x88, 0x00, 0xD3, 0x81, 0x90, 0x80, 0x91, 0x31, 0x1F, 0x18, 0x0C, 0x97, 0x09, 0x08,
    0x80, 0x18, 0x2A, 0x3B, 0x2C, 0x99, 0x04, 0x89, 0x00, 0x90, 0x8A, 0xA6, 0xF3, 0x39, 0x2E, 0x92,
    0xC2, 0xA2, 0x82, 0xF1, 0x02, 0x08, 0xB0, 0x12, 0x3D, 0xC0, 0x83, 0x92, 0x42, 0x0F, 0xB2, 0x80,
    0x00, 0x88, 0x00, 0x18, 0x09, 0x0A, 0x31, 0x4E, 0xB0, 0x7A, 0xB0, 0x91, 0x48, 0xA8, 0x81, 0x09,
    0x79, 0xA8, 0x9A, 0x87, 0x08, 0x88, 0x80, 0x08, 0x88, 0x90, 0x83, 0x2B, 0x19, 0x80, 0x20, 0xE2,
    0xF8, 0x6F, 0x08, 0x88, 0x80, 0x81, 0x09, 0x00, 0x2A, 0x08, 0x29, 0xA9, 0x78, 0xE4, 0x91, 0x91,
    0xC2, 0x07, 0x0B, 0x08, 0x29, 0x0B, 0x92, 0x81, 0x88, 0x28, 0x98, 0x90, 0x10, 0xD4, 0xF1, 0x21,
    0x8F, 0x22, 0x88, 0x28, 0x1F, 0x81, 0x12, 0x0C, 0x88, 0x00, 0x28, 0x1C, 0xB8, 0x62, 0xE5, 0x91,
    0x80, 0x80, 0xA1, 0x29, 0x7A, 0xBA, 0x32, 0x88, 0x00, 0x98, 0xC3, 0xB2, 0xC5, 0x96, 0x88, 0xC1,
    0x11, 0x98, 0x81, 0x14, 0x0C, 0x21, 0x3F, 0x0A, 0x98, 0x00, 0x08, 0x98, 0x92, 0x18, 0x0A, 0x59,
    0x19, 0xFA, 0x94, 0x6B, 0xBA, 0xA6, 0xA3, 0x18, 0x90, 0x3B, 0x82, 0x00, 0x8B, 0xB6, 0x28, 0x1F,
    0xA1, 0xD2, 0x50, 0x4C, 0x1B, 0x80, 0x81, 0x00, 0x18, 0x49, 0x8A, 0x00, 0x09, 0x09, 0x94, 0x74,
    0x0D, 0x88, 0x58, 0x9A, 0x91, 0x94, 0x89, 0xC5, 0x01, 0x98, 0x86, 0xB8, 0x81, 0x90, 0x11, 0x2E,
    0x09, 0x18, 0x29, 0xAB, 0x70, 0x2A, 0x2A, 0x1A, 0xAA, 0x13, 0xA0, 0x9F, 0x63, 0x1C, 0x00, 0x88,
    0xC0, 0x84, 0xC1, 0x21, 0x8D, 0x20, 0x81, 0x00, 0xAA, 0x04, 0x08, 0x29, 0x08, 0x0A, 0x4F, 0x08,
    0x08, 0x00, 0x19, 0x98, 0x71, 0x0C, 0x18, 0x88, 0x62, 0x1E, 0x81, 0x3B, 0xA8, 0x48, 0xD2, 0x88,
    0x01, 0xB2, 0x19, 0x88, 0x08, 0x99, 0x12, 0xA0, 0x90, 0xC4, 0x84, 0xA8, 0x3F, 0x80, 0xA0, 0xF2,
    0xE3, 0x30, 0xE8, 0x30, 0x80, 0x90, 0x5C, 0x88, 0x19, 0x91, 0x5A, 0x88, 0x88, 0x82, 0x89, 0x92,
    0x80, 0xA2, 0x5C, 0x3A, 0xC2, 0x98, 0x73, 0xA2, 0xF8, 0x91, 0xA3, 0xA3, 0x70, 0x8B, 0x88, 0x48,
    0xD2, 0x18, 0xC4, 0x08, 0x08, 0x08, 0x88, 0x00, 0x08, 0x09, 0x80, 0xA0, 0xA3, 0x2F, 0x90, 0x01,
    0xF1, 0x6D, 0x89, 0x92, 0x29, 0x10, 0xEB, 0x41, 0xBB, 0x24, 0x88, 0x80, 0x08, 0x80, 0x90, 0xF3,
    0x40, 0x89, 0x00, 0x82, 0x0B, 0xA5, 0xB2, 0x5B, 0x7A, 0xC1, 0x01, 0xC1, 0x28, 0x21, 0x0E, 0x88,
    0x80, 0xA6, 0x89, 0x01, 0xA3, 0xC8, 0x11, 0x09, 0x42, 0x0F, 0x88, 0x80, 0x80, 0x80, 0x80, 0x18,
    0x09, 0x19, 0xF1, 0x68, 0x3B, 0x1E, 0x01, 0x2B, 0xC8, 0x04, 0x80, 0xC8, 0x48, 0x80, 0x80, 0x00,
    0x90, 0x3F, 0xC0, 0x38, 0x81, 0x80, 0x09, 0x92, 0x71, 0x1C, 0xB2, 0x08, 0x29, 0x22, 0x89, 0xF7,
    0x80, 0xA1, 0x93, 0x01, 0x8B, 0x38, 0xA7, 0x0A, 0x19, 0xA8, 0x79, 0x5A, 0x8A, 0x1A, 0x92, 0x90,
    0x91, 0x80, 0xA2, 0x81, 0xA1, 0x20, 0x0B, 0x88, 0x4B, 0x3B, 0xF1, 0x5F, 0xF9, 0x22, 0xA8, 0x0A,
    0x13, 0x01, 0x88, 0x88, 0x38, 0x19, 0x2B, 0xAF, 0x97, 0x23, 0x69, 0xEA, 0xA2, 0x93, 0x98, 0xD2,
    0x01, 0x24, 0xAA, 0x89, 0x83, 0x6C, 0x9A, 0x81, 0xA2, 0x79, 0xA8, 0x80, 0x88, 0x81, 0x90, 0x00,
    0xF0, 0xA3, 0x9D, 0x52, 0x90, 0x91, 0x91, 0x29, 0xC0, 0x7B, 0x18, 0x2A, 0x98, 0x49, 0x2A, 0x1D,
    0x88, 0xA4, 0x92, 0x91, 0xA1, 0x81, 0x90, 0x17, 0x2F, 0x3B, 0x7A, 0x1B, 0x59, 0x0B, 0x48, 0x0B,
    0x19, 0x3B, 0x29, 0xC2, 0x80, 0x00, 0xC2, 0x10, 0xC7, 0xB2, 0x81, 0xC2, 0x9E, 0x08, 0x50, 0x00,
    0x38, 0x2E, 0x09, 0x19, 0x18, 0xB9, 0x7A, 0x99, 0x68, 0x2A, 0x1C, 0x81, 0x80, 0xC0, 0x51, 0xA9,
    0x99, 0x84, 0x10, 0x18, 0xAA, 0x7A, 0x18, 0x91, 0x80, 0x2A, 0x1A, 0x88, 0x19, 0x81, 0x71, 0x05,
    0x2D, 0xE0, 0x01, 0x0A, 0x80, 0x11, 0x3C, 0xC9, 0xA4, 0x03, 0x1C, 0x10, 0x18, 0x4B, 0x94, 0xAC,
    0x20, 0x18, 0xC9, 0xA2, 0xA2, 0x81, 0x0F, 0x94, 0xA1, 0x81, 0x3E, 0xD0, 0xB1, 0x11, 0x4A, 0x8A,
    0x59, 0x82, 0x91, 0x80, 0xAE, 0x33, 0x31, 0x0D, 0x99, 0x83, 0x00, 0xA0, 0x90, 0xB3, 0x27, 0x5B,
    0x9B, 0xA1, 0xB2, 0x37, 0x89, 0x8D, 0x25, 0x8D, 0x08, 0x08, 0x31, 0xB0, 0x8B, 0x80, 0x00, 0x79,
    0x7B, 0xC0, 0x08, 0x91, 0xB8, 0xB1, 0x24, 0xB8, 0x90, 0x0C, 0x25, 0xFA, 0x22, 0x3A, 0x89, 0x1E,
    0x39, 0x80, 0x82, 0xEB, 0x03, 0x8A, 0xD2, 0x05, 0x91, 0xC1, 0x11, 0x08, 0x24, 0x8D, 0x88, 0x23,
    0x0A, 0x3D, 0x9A, 0x91, 0xB4, 0xC7, 0x00, 0xA2, 0xD3, 0x91, 0x81, 0xC4, 0x91, 0xB2, 0x01, 0xA7,
    0x08, 0x0A, 0x80, 0x80, 0x18, 0x09, 0x18, 0x08, 0x88, 0x98, 0xBF, 0xC3, 0x13, 0x1D, 0x00, 0x69,
    0x99, 0x3A, 0x21, 0xFA, 0x38, 0xA2, 0x19, 0xC3, 0xF3, 0x38, 0x2C, 0xC2, 0x51, 0x1A, 0x19, 0x39,
    0xC1, 0x08, 0x1A, 0x07, 0x88, 0x3D, 0x1A, 0x19, 0x90, 0x38, 0xF8, 0x83, 0x0A, 0x18, 0xB4, 0x68,
    0x80, 0x09, 0xD1, 0x39, 0xC1, 0x98, 0x10, 0x08, 0x3F, 0x80, 0x08, 0xA8, 0xD3, 0x24, 0x8B, 0x18,
    0x08, 0xFA, 0x31, 0x88, 0xC0, 0x1B, 0x98, 0x73, 0x3B, 0xC9, 0xB4, 0x12, 0x5B, 0x18, 0x09, 0x82,
    0x2B, 0x19, 0x19, 0x6A, 0x2A, 0xC1, 0x88, 0x81, 0xA0, 0x81, 0x91, 0x91, 0xB7, 0xA1, 0x92, 0x57,
    0x0E, 0x08, 0x28, 0xB3, 0xF4, 0x80, 0x10, 0xB0, 0x81, 0x90, 0xA1, 0x24, 0x0F, 0x98, 0x83, 0xA0,
    0x10, 0x00, 0x28, 0xBF, 0x31, 0xC0, 0xA4, 0x8B, 0x51, 0x92, 0x80, 0x80, 0x90, 0xC0, 0x84, 0x02,
    0x0A, 0x38, 0xF3, 0x80, 0x80, 0x71, 0xE0, 0x01, 0x19, 0x03, 0xAC, 0x91, 0x00, 0x14, 0x98, 0x1E,
    0x50, 0x81, 0xD1, 0x3B, 0xA8, 0x80, 0x80, 0x29, 0x99, 0x11, 0x90, 0x99, 0xA5, 0x21, 0x9A, 0x11,
    0x29, 0x0F, 0xC3, 0x00, 0xF8, 0x2D, 0xD0, 0x04, 0xB8, 0x79, 0x80, 0x18, 0x19, 0x19, 0x39, 0x6B,
    0x99, 0x18, 0x2A, 0x7A, 0xC4, 0x2A, 0x88, 0x90, 0x91, 0xA1, 0xA3, 0xB6, 0x80, 0x84, 0xC0, 0x86,
    0xA8, 0x88, 0x91, 0x80, 0x00, 0x19, 0x88, 0x80, 0x90, 0x01, 0x2B, 0x2F, 0x08, 0x18, 0x80, 0x88,
    0xB2, 0xEB, 0x7B, 0x90, 0x8F, 0x86, 0x88, 0x81, 0x2B, 0xC9, 0x05, 0x81, 0x98, 0x82, 0x80, 0xA7,
    0x81, 0x1B, 0x3F, 0x18, 0x2A, 0xC7, 0x02, 0x1B, 0x2A, 0x90, 0x29, 0x3A, 0xA8, 0x6B, 0x6C, 0xC1,
    0x80, 0x00, 0x39, 0xB8, 0x80, 0x80, 0x38, 0x7B, 0xD0, 0xE2, 0x02, 0x18, 0x09, 0x88, 0x80, 0x80,
    0xF2, 0x6B, 0x80, 0x80, 0x08, 0x9A, 0x40, 0x80, 0x18, 0x4D, 0xBA, 0x96, 0x28, 0x09, 0x98, 0x82,
    0x10, 0x89, 0x91, 0x18, 0xA3, 0x59, 0x2B, 0x09, 0x8A, 0x83, 0x30, 0x7E, 0xF0, 0x97, 0x08, 0x1A,
    0x91, 0x81, 0x2B, 0x7A, 0x1B, 0x10, 0x0B, 0x38, 0x1C, 0x09, 0xD3, 0x00, 0x81, 0xA8, 0x21, 0x1A,
    0x8F, 0xA2, 0xA5, 0xC2, 0xB2, 0x10, 0x7B, 0x29, 0x09, 0xF1, 0x88, 0x48, 0x00, 0xDA, 0x23, 0x29,
    0x1E, 0x81, 0x29, 0x28, 0x99, 0xA7, 0xA1, 0x80, 0x20, 0x9A, 0x62, 0x1A, 0x1C, 0xB5, 0x08, 0x09,
    0x18, 0xE4, 0x82, 0x89, 0x80, 0xA1, 0x85, 0x3B, 0xA5, 0x9A, 0x91, 0x91, 0x90, 0xE5, 0x11, 0xB3,
    0x89, 0xB1, 0xF5, 0x82, 0x80, 0x08, 0xBB, 0x87, 0xB1, 0xD3, 0x12, 0xE0, 0x01, 0xA1, 0xB3, 0xB2,
    0x11, 0x4A, 0x3A, 0x90, 0x5C, 0x5B, 0x88, 0x88, 0x03, 0x1F, 0x08, 0x18, 0xB4, 0x28, 0xB0, 0x04,
    0x2E, 0x19, 0x0A, 0x59, 0x1A, 0x89, 0x80, 0x05, 0xD8, 0x80, 0x80, 0x80, 0xA1, 0x79, 0x1A, 0x91,
    0x1A, 0xB0, 0x93, 0xF4, 0x28, 0x91, 0x0A, 0x5D, 0x09, 0x91, 0x18, 0x3F, 0x89, 0x10, 0xBA, 0x15,
    0x3D, 0x80, 0xB0, 0x22, 0x2F, 0x18, 0x19, 0x18, 0x09, 0x29, 0x59, 0x8B, 0x28, 0x2A, 0x3C, 0x1A,
    0xC5, 0x32, 0x3C, 0x3D, 0x7B, 0x0A, 0x1A, 0x19, 0x79, 0x99, 0x08, 0x08, 0x18, 0xB8, 0x41, 0x99,
    0x91, 0xA0, 0xA7, 0x08, 0x88, 0x91, 0x00, 0xB1, 0x2C, 0x3D, 0x3E, 0x4A, 0x3D, 0xB1, 0x18, 0x2C,
    0x09, 0x99, 0x80, 0x27, 0x9B, 0xD5, 0x11, 0x91, 0x00, 0xB0, 0x11, 0x10, 0x19, 0x2B, 0x70, 0x9C,
    0xA5, 0x90, 0x91, 0x04, 0x9A, 0x14, 0xB3, 0xF8, 0x84, 0x3A, 0x8C, 0x80, 0xA1, 0x32, 0x5C, 0x1A,
    0xB8, 0x00, 0xE2, 0x49, 0xBB, 0x24, 0x18, 0xA8, 0xB8, 0x95, 0xA4, 0xF1, 0x01, 0x1A, 0xC3, 0x00,
    0xB3, 0xA7, 0xB3, 0x02, 0xEA, 0x83, 0x08, 0x88, 0x4A, 0x40, 0x1A, 0x2C, 0x1B, 0x81, 0x7C, 0x18,
    0x89, 0x3B, 0x01, 0xCA, 0x01, 0x32, 0x1C, 0x89, 0xA1, 0xD4, 0xF4, 0xA3, 0x91, 0x88, 0xA2, 0xA2,
    0x81, 0xB2, 0x81, 0x31, 0xFC, 0x09, 0xA1, 0x18, 0xA7, 0x2A, 0x92, 0x12, 0x29, 0x8F, 0x03, 0x39,
    0x8E, 0x83, 0x9B, 0x24, 0x2C, 0x1B, 0xB8, 0x7A, 0x30, 0x19, 0x3A, 0xC9, 0x92, 0x98, 0x92, 0xA0,
    0x37, 0x10, 0x08, 0x3F, 0x0A, 0xE0, 0x30, 0xA9, 0x80, 0x80, 0x80, 0x45, 0x89, 0x8B, 0xA9, 0xA7,
    0xD6, 0x92, 0xA0, 0xB3, 0x92, 0xB1, 0x3A, 0x22, 0x19, 0x2F, 0x9B, 0x12, 0xA4, 0xA2, 0xF8, 0x91,
    0x58, 0x8A, 0xC2, 0x05, 0x08, 0x98, 0x81, 0x2D, 0x28, 0x08, 0xBA, 0x87, 0x88, 0x01, 0xB2, 0x18,
    0x18, 0x7B, 0xC0, 0x81, 0x98, 0x01, 0x90, 0xA4, 0x34, 0x4C, 0xC9, 0x82, 0x01, 0x3F, 0xA8, 0x18,
    0xC4, 0x89, 0x01, 0x88, 0x18, 0xC4, 0x80, 0xA1, 0x9A, 0xA7, 0x5A, 0xA9, 0xB5, 0xA3, 0x88, 0x18,
    0x80, 0xC6, 0xA2, 0x82, 0x91, 0xC1, 0x92, 0x20, 0xBD, 0xA6, 0x30, 0x38, 0x38, 0x8E, 0x0A, 0xC2,
    0x03, 0x1E, 0x42, 0x2C, 0x39, 0xCA, 0x85, 0x08, 0x8A, 0x10, 0xD1, 0x83, 0xAA, 0x70, 0x3A, 0x0A,
    0xB1, 0x19, 0x83, 0x7D, 0x0B, 0x09, 0x91, 0x28, 0x2E, 0x80, 0x08, 0x91, 0xF4, 0x02, 0x98, 0x81,
    0x80, 0x39, 0x89, 0x18, 0xBA, 0x87, 0x80, 0x80, 0x80, 0x90, 0xD3, 0x31, 0x2C, 0x2C, 0x88, 0x91,
    0x18, 0xF0, 0x58, 0x09, 0x18, 0x7A, 0x8A, 0x50, 0x8A, 0x84, 0x80, 0xA0, 0xC8, 0xA6, 0x0A, 0x3A,
    0x00, 0x08, 0x09, 0x28, 0x1A, 0x9C, 0x85, 0x28, 0x0D, 0xD9, 0xE3, 0xA2, 0x83, 0x02, 0x8D, 0x84,
    0x10, 0x08, 0x88, 0xC1, 0xA9, 0x97, 0x11, 0x99, 0x95, 0x08, 0x90, 0x18, 0xA2, 0xD4, 0x11, 0x2C,
    0x13, 0xA9, 0xF2, 0xA0, 0x06, 0x88, 0xAA, 0x38, 0x88, 0x35, 0x8E, 0x18, 0x9B, 0x32, 0x7B, 0x09,
    0xA0, 0x0B, 0x9A, 0x17, 0x88, 0x08, 0x0D, 0x21, 0xE8, 0x10, 0xB2, 0x69, 0xB8, 0x21, 0x1A, 0xA9,
    0xC2, 0x03, 0x7B, 0x88, 0x82, 0x08, 0x59, 0xA8, 0xC2, 0xA5, 0x12, 0xAB, 0xA6, 0x10, 0x0B, 0x13,
    0x4F, 0x8A, 0x38, 0xC0, 0x93, 0x1B, 0x08, 0x18, 0xC5, 0x91, 0xC2, 0x12, 0x0C, 0x18, 0x19, 0x19,
    0xD9, 0xB6, 0x48, 0xB9, 0x41, 0xBB, 0x85, 0xA1, 0x49, 0x98, 0x28, 0xD1, 0x88, 0x28, 0xA8, 0x78,
    0x98, 0x83, 0x3D, 0x90, 0x28, 0x3A, 0x09, 0x08, 0x18, 0x09, 0x97, 0x09, 0x90, 0x33, 0x2F, 0xA6,
    0x08, 0x8A, 0x85, 0x39, 0x18, 0x9E, 0xB4, 0x30, 0xAA, 0xA2, 0x49, 0x8A, 0x42, 0x04, 0x4A, 0x00,
    0xB2, 0x08, 0xB6, 0x08, 0x90, 0xB8, 0x96, 0xA2, 0x01, 0xA8, 0x6D, 0x8A, 0xA1, 0x84, 0xB8, 0x51,
    0xBD, 0x31, 0x93, 0xD9, 0x94, 0x9A, 0x12, 0x6A, 0xC9, 0x04, 0x1B, 0x83, 0x18, 0xA8, 0x5C, 0x00,
    0x88, 0x91, 0x00, 0xD5, 0x32, 0x08, 0xB8, 0x03, 0x08, 0x1D, 0x9B, 0xC7, 0xA1, 0xA7, 0x00, 0x80,
    0x0A, 0x01, 0xA1, 0x1A, 0x40, 0x0D, 0x08, 0x19, 0x18, 0x6A, 0x0C, 0x80, 0x28, 0x2A, 0x1A, 0x09,
    0x08, 0xA0, 0x8F, 0x7C, 0x4C, 0x99, 0x20, 0xA8, 0xD4, 0x11, 0x80, 0x91, 0xC1, 0x30, 0x2D, 0x00,
    0x2D, 0x81, 0x88, 0xC2, 0x02, 0x80, 0x08, 0x70, 0x89, 0xD4, 0x30, 0x0C, 0x28, 0x1B, 0xA4, 0x59,
    0x89, 0xC0, 0x12, 0x1C, 0x39, 0xF1, 0x83, 0x98, 0x08, 0x08, 0x08, 0x90, 0x00, 0x49, 0xB1, 0x8A,
    0x10, 0x98, 0x08, 0xA1, 0xBF, 0xD7, 0x04, 0x09, 0xA1, 0x39, 0x88, 0x2F, 0x00, 0x9C, 0x52, 0x2A,
    0x0A, 0x88, 0xA1, 0xA7, 0x91, 0x83, 0x4B, 0x09, 0xF0, 0x95, 0x19, 0x88, 0x10, 0x39, 0x4B, 0xF1,
    0x10, 0x89, 0x08, 0x00, 0x98, 0x21, 0x2B, 0xB1, 0x97, 0x8A, 0x10, 0x09, 0x80, 0x88, 0xB1, 0xF5,
    0x30, 0x19, 0x1A, 0x18, 0xC1, 0x81, 0x08, 0x19, 0xF0, 0x5A, 0x28, 0xB9, 0x79, 0x19, 0x09, 0x4F,
    0x89, 0x18, 0x4D, 0x29, 0x19, 0x4D, 0x19, 0x09, 0x19, 0x18, 0x3A, 0x29, 0xB5, 0x9A, 0x91, 0xA1,
    0x92, 0xA2, 0x92, 0x7F, 0x28, 0xAB, 0x92, 0x80, 0x90, 0x81, 0xB7, 0x80, 0x91, 0xA1, 0xB2, 0xE5,
    0x49, 0x88, 0x33, 0x1F, 0x80, 0x2B, 0x29, 0x0B, 0x01, 0x69, 0x98, 0xB7, 0x88, 0xA2, 0x02, 0x98,
    0x7A, 0x8A, 0x93, 0xA3, 0x08, 0x2A, 0x84, 0x1F, 0x3B, 0xE2, 0x00, 0xA2, 0x09, 0x59, 0xF1, 0x18,
    0x80, 0x80, 0x00, 0x08, 0x29, 0x8F, 0x83, 0x80, 0x00, 0x08, 0x2F, 0x08, 0xB1, 0xD1, 0x00, 0x22,
    0x90, 0x2C, 0x92, 0x7B, 0x09, 0x1B, 0x02, 0x3C, 0xAB, 0x27, 0x3B, 0x08, 0x88, 0x2D, 0x29, 0x3B,
    0x4D, 0x7B, 0x2A, 0x00, 0x3B, 0xC8, 0x59, 0x0A, 0xA1, 0xA2, 0x88, 0x78, 0x80, 0xD0, 0x20, 0x2B,
    0xA3, 0x5A, 0x2D, 0x2B, 0x89, 0x19, 0x5C, 0x3C, 0x88, 0x39, 0x0A, 0x4E, 0x08, 0x08, 0x88, 0xA8,
    0x68, 0x99, 0x09, 0x20, 0x02, 0x09, 0xF0, 0x02, 0x4D, 0x09, 0xA8, 0x84, 0x00, 0x08, 0x59, 0xC0,
    0x10, 0x92, 0x28, 0x2E, 0xD0, 0x84, 0x98, 0x11, 0x91, 0xC1, 0xD3, 0x82, 0xA1, 0x02, 0x8D, 0x40,
    0x1C, 0x89, 0x8C, 0x13, 0x90, 0xA1, 0x29, 0x7B, 0x09, 0x90, 0x0B, 0x2A, 0x51, 0x2F, 0x00, 0x08,
    0x08, 0x00, 0xA8, 0x30, 0x2F, 0x2D, 0xB2, 0x93, 0xF1, 0x38, 0x80, 0xD0, 0x30, 0x00, 0xA0, 0x29,
    0x48, 0xF3, 0xC3, 0xA5, 0x98, 0x94, 0x00, 0xD2, 0xA0, 0xA5, 0xB2, 0xB4, 0xA2, 0xA2, 0xA4, 0xA2,
    0xB0, 0x92, 0xA1, 0xA2, 0xB7, 0xB4, 0x90, 0x81, 0x80, 0x91, 0x80, 0x00, 0x88, 0x08, 0x00, 0xF0,
    0xD1, 0x7A, 0x88, 0x8A, 0x79, 0x80, 0x18, 0x09, 0xD1, 0x21, 0x2A, 0x09, 0x29, 0xC4, 0x19, 0x97,
    0x8A, 0x86, 0x2A, 0x1C, 0x08, 0x08, 0x01, 0x4C, 0xC0, 0x21, 0x81, 0x90, 0x8A, 0x81, 0xFA, 0x5B,
    0x10, 0x98, 0x90, 0x91, 0x80, 0x01, 0x88, 0x88, 0x39, 0x2A, 0xFC, 0x1E, 0x85, 0x8B, 0xC4, 0xA5,
    0xB3, 0x38, 0x81, 0x0A, 0x08, 0x90, 0x80, 0x90, 0xB4, 0x00, 0x17, 0x59, 0x1D, 0x99, 0x84, 0x9A,
    0x00, 0x08, 0x96, 0x8A, 0xB3, 0x05, 0xC8, 0x91, 0x62, 0xC9, 0xC0, 0x84, 0x98, 0x2A, 0xA3, 0xD3,
    0x83, 0xC0, 0xA2, 0x02, 0xB8, 0x80, 0xE4, 0x22, 0x3C, 0x3D, 0x8B, 0x91, 0xB2, 0x97, 0x18, 0x0A,
    0xA0, 0xA3, 0x49, 0x93, 0x0A, 0x3A, 0x03, 0x81, 0x49, 0x5D, 0xB6, 0x88, 0x91, 0x00, 0x2B, 0x73,
    0x2E, 0x88, 0x29, 0xE2, 0xA0, 0x32, 0x0C, 0x08, 0x08, 0x18, 0xB5, 0x09, 0x08, 0x08, 0x09, 0x81,
    0xD1, 0xB9, 0x5E, 0x92, 0x9A, 0x4B, 0x97, 0x90, 0x81, 0xD2, 0x2A, 0x18, 0x08, 0x0B, 0x18, 0x98,
    0x17, 0x80, 0xBB, 0x15, 0xB0, 0x49, 0x01, 0x88, 0x90, 0x23, 0x3E, 0xB2, 0x00, 0x0C, 0x87, 0x2D,
    0x2A, 0x50, 0x89, 0x39, 0x08, 0x19, 0xA8, 0x2F, 0x10, 0xBB, 0x81, 0x97, 0x99, 0x29, 0x80, 0x18,
    0x8C, 0x83, 0x91, 0x10, 0x8A, 0x01, 0x19, 0x99, 0xFE, 0x3D, 0xB5, 0x12, 0xBB, 0xB3, 0x49, 0x7C,
    0x1B, 0x92, 0x5A, 0xC8, 0x21, 0x4B, 0x89, 0x82, 0xA0, 0x34, 0x8F, 0x81, 0x80, 0x80, 0x92, 0x01,
    0x7B, 0x1A, 0xE3, 0x02, 0x08, 0xAA, 0x92, 0x59, 0x89, 0x89, 0x70, 0xA9, 0x80, 0x20, 0x2B, 0xE5,
    0x80, 0x01, 0x09, 0x19, 0x83, 0x0F, 0x91, 0x81, 0x89, 0x92, 0xF2, 0x92, 0x01, 0xA8, 0x31, 0x9F,
    0x94, 0x5B, 0xA0, 0x82, 0x0C, 0x48, 0x2C, 0x90, 0x00, 0x80, 0x93, 0x90, 0x1E, 0xA3, 0x94, 0x81,
    0x28, 0xE4, 0x92, 0x49, 0x90, 0x93, 0xF1, 0x08, 0x88, 0xA3, 0x68, 0x1B, 0x02, 0x0E, 0x08, 0x20,
    0x09, 0x0B, 0x14, 0xBB, 0x22, 0x1E, 0x60, 0xB9, 0x91, 0x00, 0x98, 0x44, 0x9C, 0x38, 0xA8, 0xD1,
    0x82, 0x91, 0x80, 0x4E, 0x3B, 0xE8, 0x58, 0x98, 0x01, 0x2B, 0x90, 0x12, 0x8D, 0x81, 0xA6, 0x10,
    0xA0, 0x80, 0xA0, 0xB3, 0x07, 0x1C, 0x08, 0x14, 0x0E, 0x21, 0x1B, 0xC1, 0x09, 0x13, 0x1E, 0x29,
    0x3B, 0xC2, 0x49, 0xD1, 0x00, 0x39, 0xC0, 0x02, 0x1B, 0x88, 0x10, 0xAE, 0x33, 0x09, 0x18, 0x08,
    0x19, 0x19, 0xB0, 0x74, 0x8C, 0xE0, 0x89, 0xA7, 0x82, 0x18, 0x88, 0x80, 0xB8, 0x2B, 0x97, 0xA3,
    0x29, 0x81, 0x99, 0x07, 0x1D, 0x18, 0x19, 0x49, 0x09, 0x8B, 0x81, 0xE8, 0x03, 0x88, 0x80, 0x4C,
    0xA1, 0x3F, 0x21, 0x0E, 0x81, 0x18, 0x09, 0x28, 0xA0, 0xAA, 0x97, 0x31, 0xEA, 0xA1, 0x12, 0x08,
    0x09, 0x40, 0xD6, 0x81, 0x89, 0x30, 0x8B, 0x00, 0x83, 0x8C, 0x98, 0x6D, 0x0C, 0xA4, 0x10, 0x08,
    0x90, 0xA0, 0x00, 0x38, 0xF0, 0x13, 0x1B, 0x08, 0xB4, 0x88, 0xA7, 0x19, 0x48, 0x0C, 0x90, 0xA1,
    0x59, 0xA9, 0x94, 0xA0, 0x59, 0x08, 0x90, 0xA0, 0x4C, 0xA1, 0x1E, 0x12, 0x88, 0x80, 0xE1, 0x12,
    0x80, 0x08, 0xC9, 0x84, 0x4B, 0x08, 0x00, 0x1A, 0xF9, 0x94, 0x93, 0x2F, 0x88, 0x82, 0x28, 0xC0,
    0x91, 0x92, 0x02, 0x6E, 0x99, 0x91, 0xB3, 0x39, 0xA9, 0x82, 0xA0, 0x10, 0x71, 0x1D, 0x88, 0x18,
    0x08, 0x3A, 0x9A, 0x25, 0x2F, 0x8B, 0x03, 0x8E, 0x94, 0xD2, 0x11, 0x19, 0x19, 0x18, 0x2E, 0x18,
    0x1F, 0x01, 0x38, 0x0B, 0x08, 0x7C, 0x1A, 0x09, 0x18, 0xAA, 0xA6, 0x19, 0x38, 0xCA, 0x91, 0x53,
    0x1A, 0x19, 0x18, 0x2A, 0x0D, 0x5B, 0xA4, 0x79, 0x0B, 0xB3, 0x08, 0x08, 0xA1, 0x81, 0xC6, 0xB5,
    0x00, 0x18, 0x2B, 0xC2, 0x32, 0x0E, 0x88, 0x42, 0x1D, 0x98, 0x90, 0x81, 0x08, 0x30, 0x9C, 0xD3,
    0xB2, 0x6A, 0x80, 0x08, 0xC0, 0x11, 0x80, 0x80, 0xB1, 0x2F, 0x02, 0x8A, 0x6A, 0x2C, 0x88, 0x83,
    0x5B, 0x0A, 0x1A, 0xF8, 0xA5, 0x11, 0x08, 0x88, 0x3A, 0xC3, 0xA2, 0xA8, 0x83, 0x50, 0x3D, 0xD1,
    0x91, 0x11, 0x4C, 0x88, 0xD4, 0x80, 0x11, 0xC2, 0x09, 0x1A, 0xC2, 0xA7, 0x08, 0xA2, 0x88, 0x00,
    0xC1, 0x92, 0xC2, 0x7A, 0x09, 0x80, 0x00, 0xB9, 0xA6, 0xD2, 0x11, 0xB0, 0xA2, 0x18, 0x69, 0x2C,
    0xC1, 0x21, 0x2C, 0x90, 0x01, 0xA8, 0x6A, 0x08, 0x88, 0x5A, 0x29, 0x3A, 0x2C, 0x1A, 0x88, 0x49,
    0x98, 0x61, 0xD0, 0xB0, 0x33, 0x6B, 0x2A, 0xAA, 0x82, 0x8A, 0x00, 0xB7, 0xE8, 0xFE, 0x4F, 0x00,
    0xB3, 0x31, 0x8D, 0x80, 0x90, 0x43, 0x1F, 0x19, 0x0A, 0x30, 0x1F, 0x09, 0x82, 0x18, 0x2B, 0x18,
    0x3A, 0x3A, 0x4F, 0x3D, 0x3E, 0x2B, 0x00, 0x18, 0x09, 0x3E, 0x00, 0x09, 0x18, 0x19, 0x28, 0x0B,
    0x82, 0x32, 0x3F, 0x2F, 0x2A, 0x4A, 0xA0, 0x92, 0x7D, 0x8A, 0x08, 0xA2, 0x08, 0x18, 0xD4, 0x80,
    0x02, 0x90, 0x48, 0x2D, 0x3B, 0xC1, 0x18, 0x2A, 0xC1, 0x91, 0x95, 0x4A, 0x8B, 0x91, 0x81, 0x0A,
    0xF4, 0x49, 0x80, 0x90, 0x3A, 0x8C, 0x85, 0x80, 0x98, 0x82, 0x81, 0x88, 0xC1, 0x48, 0x88, 0x10,
    0x2A, 0x09, 0x7A, 0xB8, 0x70, 0x95, 0x8C, 0x20, 0x8A, 0x80, 0x00, 0xC2, 0x51, 0x1D, 0x01, 0x48,
    0x9C, 0x20, 0x2D, 0x6B, 0x89, 0x08, 0x39, 0x0A, 0x19, 0x2D, 0x81, 0x80, 0x85, 0x8B, 0xE0, 0x20,
    0x91, 0xA0, 0x93, 0xAC, 0xA7, 0x93, 0xA2, 0x92, 0x90, 0x81, 0xC1, 0xF4, 0x20, 0x00, 0x1A, 0x08,
    0x18, 0xA8, 0xA5, 0x80, 0x78, 0x0B, 0x32, 0xDB, 0x4A, 0x08, 0x08, 0x88, 0x88, 0x56, 0x0D, 0x08,
    0x29, 0x98, 0x80, 0x08, 0x88, 0x21, 0xC6, 0x88, 0x80, 0x3E, 0x80, 0x08, 0x00, 0xC9, 0xE4, 0x30,
    0x20, 0x2C, 0xB2, 0x2A, 0x09, 0x18, 0x0D, 0x93, 0xA0, 0xB3, 0xE7, 0x11, 0x09, 0x81, 0xD8, 0x43,
    0xBB, 0x84, 0x3A, 0xC2, 0x81, 0xD3, 0x12, 0x1B, 0x2A, 0x6D, 0x19, 0xC0, 0x91, 0x01, 0x11, 0x3B,
    0xF9, 0x81, 0xA1, 0x07, 0x8B, 0x10, 0x94, 0xB9, 0x18, 0x88, 0x0E, 0x93, 0x92, 0x00, 0x09, 0x3F,
    0x40, 0xAD, 0x11, 0x82, 0x38, 0xC1, 0x3D, 0xE0, 0x28, 0x81, 0xA2, 0x08, 0x5B, 0xC9, 0x95, 0x11,
    0xA8, 0xA1, 0x8C, 0x52, 0x0B, 0x12, 0xD2, 0x23, 0xAC, 0x91, 0x86, 0x99, 0x92, 0x09, 0x80, 0x38,
    0x9A, 0x51, 0x98, 0x1C, 0x18, 0x12, 0xE8, 0xE3, 0x04, 0x0B, 0x88, 0xA1, 0x38, 0xAD, 0x14, 0x0A,
    0xD2, 0x20, 0x8B, 0x96, 0xC9, 0xB6, 0xC3, 0x92, 0x20, 0x3B, 0x91, 0xB1, 0x5D, 0x18, 0x19, 0x19,
    0x80, 0x21, 0x99, 0x0C, 0x10, 0x72, 0x8C, 0xB3, 0x91, 0x88, 0x71, 0x8B, 0xA0, 0x73, 0x9B, 0x90,
    0x13, 0x1C, 0x88, 0x8A, 0x87, 0x89, 0xA3, 0x88, 0x97, 0x2B, 0xE8, 0x92, 0x5A, 0x18, 0x09, 0x9B,
    0x23, 0x80, 0x0E, 0xB3, 0xA5, 0x1B, 0xB0, 0x15, 0x2A, 0xE2, 0x20, 0x2C, 0x8A, 0x80, 0x90, 0x07,
    0xC0, 0x80, 0x03, 0x23, 0x0C, 0x0B, 0x80, 0x71, 0xB9, 0x10, 0x38, 0xB9, 0xA0, 0x75, 0x1C, 0x89,
    0x80, 0x38, 0x80, 0xD1, 0x50, 0x2A, 0x8C, 0x19, 0xB3, 0xB4, 0x90, 0x81, 0x83, 0x9B, 0x00, 0x19,
    0xD1, 0x1F, 0x83, 0x00, 0x8D, 0x29, 0xD6, 0x49, 0xA8, 0x21, 0x9A, 0x82, 0x0B, 0x89, 0x27, 0x8C,
    0x80, 0x95, 0x4B, 0x28, 0x80, 0x2A, 0x09, 0x2A, 0x4A, 0x7D, 0x09, 0x28, 0xA0, 0x3B, 0x12, 0x3C,
    0x9F, 0x01, 0x08, 0x08, 0x93, 0x4A, 0x82, 0xAC, 0xB6, 0x11, 0x0C, 0xB0, 0x30, 0x29, 0x9D, 0x91,
    0x23, 0x90, 0xC8, 0x03, 0x08, 0x9F, 0x25, 0xAA, 0xAB, 0x72, 0x80, 0x1E, 0x00, 0x39, 0x08, 0x81,
    0x1F, 0x1A, 0x21, 0x4A, 0x40, 0x0D, 0x30, 0x8C, 0x00, 0x80, 0x90, 0xA6, 0x09, 0x29, 0xA0, 0x51,
    0x2E, 0x08, 0xB1, 0x91, 0xC6, 0x82, 0x18, 0x8B, 0x81, 0x08, 0x09, 0x81, 0x80, 0xC7, 0x80, 0xA8,
    0x84, 0xC0, 0x30, 0x18, 0x89, 0x80, 0x39, 0xD3, 0xF1, 0x4D, 0x98, 0x82, 0x0B, 0x69, 0x81, 0x0B,
    0xC1, 0x41, 0x08, 0x8A, 0x03, 0xB2, 0x91, 0x22, 0xD9, 0x91, 0x74, 0x0B, 0xE2, 0xB4, 0x02, 0x98,
    0x2A, 0x1A, 0x04, 0x0D, 0x08, 0x48, 0x82, 0x29, 0xBC, 0x18, 0xE3, 0xA4, 0x0C, 0x11, 0x88, 0x83,
    0x1C, 0x38, 0xB8, 0x91, 0x29, 0x3F, 0x79, 0x99, 0x08, 0x3A, 0xE9, 0xB3, 0x85, 0x9B, 0x51, 0xB9,
    0x13, 0xB9, 0xB7, 0x11, 0x90, 0xA3, 0x92, 0xA8, 0xA6, 0x00, 0x98, 0xA1, 0xA7, 0x80, 0x90, 0xC3,
    0x92, 0x02, 0x8A, 0x80, 0x28, 0xF2, 0x52, 0x1B, 0xF1, 0xA3, 0x08, 0x88, 0x00, 0x58, 0x9B, 0x92,
    0x90, 0x80, 0xB7, 0x91, 0x4F, 0x98, 0x82, 0x88, 0x80, 0xAC, 0x05, 0x39, 0x9A, 0x82, 0x48, 0x0D,
    0x4A, 0x00, 0x90, 0xB3, 0x3F, 0x80, 0x08, 0x4E, 0x29, 0xD2, 0x18, 0x18, 0x90, 0x80, 0x88, 0x80,
    0x38, 0xD0, 0x91, 0xA7, 0x88, 0x95, 0x89, 0x80, 0x68, 0x0C, 0x80, 0x80, 0x00, 0x09, 0x80, 0x38,
    0x2B, 0x9F, 0x85, 0x90, 0xA1, 0xD2, 0xD3, 0x82, 0x3A, 0x38, 0x2F, 0x80, 0x29, 0x3D, 0x3A, 0xBA,
    0xA6, 0x49, 0x08, 0x18, 0x9A, 0xB4, 0x68, 0x19, 0xA8, 0x81, 0x90, 0xA1, 0xA7, 0x08, 0x3B, 0x30,
    0x1C, 0xA1, 0x50, 0x0D, 0x18, 0x19, 0x49, 0x99, 0x48, 0xB9, 0x81, 0x28, 0x29, 0x3C, 0x2F, 0x1A,
    0xA2, 0x80, 0x00, 0xB1, 0x6F, 0x09, 0x08, 0x4B, 0x39, 0x8F, 0x83, 0x2E, 0x90, 0x19, 0x09, 0x50,
    0x08, 0x4B, 0x1A, 0x19, 0x4B, 0xF0, 0x83, 0x11, 0x8A, 0x09, 0xB7, 0xC4, 0x81, 0xB2, 0xB2, 0xB3,
    0xA5, 0x83, 0x18, 0x8C, 0x92, 0x6A, 0x8A, 0x03, 0xF1, 0x80, 0x10, 0x80, 0x2A, 0x1C, 0x08, 0x80,
    0x88, 0x10, 0x6B, 0xF1, 0x96, 0x99, 0xC2, 0x21, 0x2D, 0xB1, 0x11, 0x3B, 0x2A, 0x5B, 0xC9, 0x03,
    0x9B, 0x52, 0x88, 0xB0, 0x48, 0x2A, 0x4A, 0x1A, 0xA8, 0x94, 0x39, 0x81, 0x2B, 0x92, 0x2B, 0x45,
    0x02, 0x8F, 0xD5, 0xB2, 0x83, 0xB0, 0x02, 0x3C, 0xE0, 0x85, 0x89, 0x21, 0x0C, 0xA1, 0x93, 0xA8,
    0x08, 0x88, 0xB7, 0x80, 0x94, 0x1A, 0xAC, 0x86, 0x90, 0xA1, 0x29, 0x10, 0x1D, 0xF3, 0x39, 0x81,
    0x80, 0x19, 0x3E, 0x91, 0xD1, 0x00, 0x11, 0xA0, 0x39, 0x90, 0x11, 0xF5, 0xB2, 0xA5, 0x11, 0xB9,
    0xA5, 0xA2, 0x31, 0x9C, 0x91, 0x97, 0xB1, 0x08, 0xA5, 0x89, 0x21, 0x89, 0x1B, 0x5A, 0xC0, 0x81,
    0x90, 0x83, 0x0A, 0x19, 0x19, 0x3F, 0x90, 0xB4, 0x9F, 0x05, 0x88, 0x19, 0x19, 0x3D, 0x3B, 0x01,
    0x1E, 0x81, 0x99, 0xF3, 0x83, 0xC1, 0x84, 0x0A, 0xA0, 0x20, 0xA4, 0x81, 0xB0, 0xD3, 0x87, 0x09,
    0x18, 0x90, 0xA1, 0x80, 0x08, 0x80, 0x28, 0x70, 0x8A, 0x05, 0xD9, 0xA2, 0x88, 0x00, 0x80, 0x00,
    0xC5, 0xA1, 0x23, 0x1E, 0x88, 0x09, 0x1F, 0x82, 0x0A, 0x94, 0x80, 0x91, 0x92, 0x2F, 0xAA, 0xB6,
    0x59, 0x80, 0x00, 0xA1, 0xA1, 0xA1, 0x59, 0x09, 0x88, 0x91, 0x84, 0xC9, 0x87, 0x89, 0xA2, 0x42,
    0xD8, 0x68, 0x99, 0x83, 0x1C, 0x49, 0x19, 0x88, 0x6B, 0x4A, 0x0C, 0x18, 0xC0, 0x91, 0x91, 0x91,
    0xB1, 0x83, 0xD0, 0x20, 0x80, 0xCC, 0x05, 0x19, 0x5C, 0x19, 0x09, 0x88, 0x82, 0x08, 0xAC, 0x87,
    0x80, 0x89, 0xF3, 0xA2, 0x01, 0x08, 0x5B, 0x3A, 0x08, 0x19, 0x18, 0xB2, 0x08, 0xA0, 0x80, 0x00,
    0xAE, 0x54, 0x23, 0xD1, 0x40, 0x8F, 0x38, 0x3A, 0x89, 0xF3, 0x08, 0x18, 0xA4, 0x92, 0x0C, 0x50,
    0x9A, 0xB1, 0x00, 0x3C, 0x1A, 0xA3, 0xE1, 0x30, 0x80, 0x80, 0x9E, 0x12, 0x82, 0x08, 0x8F, 0x80,
    0x23, 0x0B, 0x5B, 0x8A, 0x86, 0x0B, 0xA4, 0xB1, 0x83, 0xA0, 0x02, 0xE0, 0x93, 0x92, 0x80, 0x82,
    0x08, 0x7A, 0xE6, 0x91, 0x91, 0x82, 0x29, 0xC3, 0x93, 0x20, 0xDA, 0x4A, 0x12, 0x9A, 0xB9, 0x78,
    0x0B, 0x88, 0x80, 0x38, 0xB0, 0x91, 0x88, 0xB2, 0xB0, 0xF7, 0x18, 0x0B, 0x01, 0x1B, 0x63, 0xC8,
    0x03, 0x99, 0x83, 0x80, 0xF9, 0x31, 0x19, 0xE9, 0x2C, 0x95, 0x20, 0x09, 0x08, 0x00, 0x0A, 0x28,
    0x08, 0xA2, 0xD1, 0x81, 0x47, 0x6D, 0xA8, 0x01, 0x8B, 0x23, 0xDB, 0x13, 0xE7, 0x42, 0x4D, 0x00,
    0x2D, 0x92, 0xB8, 0x70, 0x9B, 0x00, 0x48, 0xA9, 0x90, 0x00, 0x98, 0x10, 0xA0, 0x12, 0x2C, 0x1D,
    0x2A, 0x0D, 0xE2, 0x03, 0xA2, 0x82, 0xF0, 0x95, 0x00, 0x09, 0x00, 0x1A, 0xC9, 0x85, 0x80, 0x90,
    0x00, 0xA2, 0xB2, 0x96, 0x09, 0x0A, 0x91, 0xF3, 0x21, 0x1B, 0xA7, 0x68, 0x18, 0x00, 0x8E, 0x08,
    0xB0, 0x28, 0x49, 0x1A, 0xB0, 0x59, 0x18, 0x49, 0xAB, 0xA3, 0x80, 0x01, 0xF9, 0xF8, 0x13, 0x39,
    0xFA, 0x03, 0x80, 0x39, 0xB0, 0xA3, 0x80, 0xC1, 0x49, 0x1B, 0xF4, 0x02, 0x80, 0xA3, 0x09, 0x85,
    0xA9, 0x19, 0x08, 0x88, 0x11, 0x19, 0xA9, 0x52, 0xC7, 0xB2, 0x88, 0xA7, 0x08, 0x09, 0x88, 0x92,
    0x4C, 0x80, 0x90, 0xA0, 0x7D, 0x90, 0xA0, 0x39, 0x1F, 0x20, 0x8C, 0xA2, 0xB3, 0x7C, 0x09, 0xA1,
    0x38, 0x3C, 0x0C, 0x18, 0x03, 0xB9, 0x13, 0x10, 0x29, 0x4A, 0x82, 0x10, 0x5E, 0x9B, 0x68, 0x0A,
    0x08, 0xC1, 0x30, 0xB8, 0x07, 0xC9, 0x02, 0x1A, 0x2A, 0x3A, 0xC0, 0x10, 0xD2, 0xC4, 0x12, 0xAA,
    0x11, 0x2A, 0x3A, 0x2F, 0xB9, 0xA3, 0xF2, 0x81, 0x31, 0x19, 0xBB, 0x32, 0xB3, 0xAF, 0x08, 0x89,
    0x37, 0x89, 0x2D, 0x28, 0x5B, 0x2A, 0x4C, 0x88, 0x18, 0x08, 0x08, 0x28, 0xB0, 0x72, 0x3C, 0xB1,
    0x98, 0xC6, 0xA2, 0x95, 0xB1, 0x22, 0x3E, 0x88, 0xB0, 0xA4, 0x1A, 0x89, 0x00, 0x19, 0x09, 0x18,
    0x2A, 0x19, 0x1B, 0x28, 0x81, 0xF2, 0x09, 0x8F, 0xC0, 0xA3, 0x87, 0xA1, 0xC3, 0xB9, 0xA2, 0x23,
    0x7F, 0x8A, 0x39, 0xC0, 0x01, 0x21, 0x3D, 0x19, 0x4D, 0x09, 0x08, 0x3A, 0x08, 0x50, 0x9A, 0x18,
    0x95, 0x4A, 0x3D, 0x80, 0x09, 0xF3, 0x01, 0xA8, 0x30, 0x80, 0x1C, 0x19, 0x49, 0x3D, 0x19, 0xD0,
    0x11, 0xA0, 0x3A, 0x4C, 0x29, 0x19, 0xF3, 0x88, 0x80, 0x91, 0xA8, 0x83, 0xA8, 0xA5, 0x5B, 0x1F,
    0x3A, 0x80, 0x81, 0xB8, 0x04, 0x99, 0x96, 0xB1, 0x83, 0xC8, 0x03, 0x3C, 0xA8, 0x03, 0x19, 0x19,
    0x1C, 0x71, 0xC1, 0x03, 0x94, 0xD0, 0x4A, 0xA9, 0x91, 0x81, 0x72, 0x1C, 0xB0, 0x80, 0x11, 0x29,
    0x7B, 0xB8, 0x28, 0xE2, 0x00, 0x18, 0x80, 0xA8, 0x81, 0x08, 0xA0, 0x02, 0x29, 0x8A, 0xC4, 0x80,
    0x5F, 0x09, 0x08, 0x5F, 0x1B, 0x00, 0x18, 0x0D, 0x83, 0x09, 0xC9, 0x41, 0x80, 0xF1, 0x02, 0x80,
    0xC5, 0x49, 0x0A, 0x10, 0x1A, 0x68, 0x0B, 0x4A, 0x98, 0x18, 0x08, 0x98, 0x90, 0x81, 0x09, 0x01,
    0xA0, 0xB2, 0x92, 0x07, 0x1B, 0xF6, 0x84, 0x0A, 0x29, 0xB0, 0x81, 0x90, 0xB2, 0xE4, 0x82, 0x00,
    0x88, 0xC2, 0x4E, 0x80, 0x80, 0x4A, 0x1A, 0x39, 0x2D, 0xBB, 0x72, 0x3B, 0x2C, 0x98, 0x48, 0x2A,
    0x3B, 0x18, 0x19, 0x19, 0x70, 0xA9, 0x41, 0x1D, 0x09, 0x08, 0x10, 0x8B, 0x83, 0x5B, 0xC8, 0x97,
    0x09, 0x88, 0xB7, 0x80, 0xA1, 0x81, 0xC3, 0x81, 0xE3, 0x13, 0x8D, 0x20, 0x98, 0x80, 0x91, 0x92,
    0x89, 0x95, 0x09, 0xA9, 0x13, 0x19, 0x08, 0x08, 0xF0, 0x2F, 0xC3, 0x48, 0x09, 0x18, 0x88, 0x90,
    0x81, 0x80, 0xA3, 0x80, 0xB2, 0xB1, 0x38, 0xC7, 0xC7, 0xC5, 0x01, 0x19, 0xE3, 0x93, 0x89, 0x81,
    0x09, 0x38, 0x99, 0x88, 0x81, 0xD3, 0x3B, 0xA2, 0xD3, 0x6A, 0x09, 0xD1, 0x69, 0x09, 0x00, 0x19,
    0x88, 0x91, 0x19, 0x00, 0x29, 0x8B, 0xF1, 0x6C, 0x80, 0xA1, 0x4D, 0x08, 0x08, 0x80, 0x48, 0xB9,
    0x01, 0x00, 0x1A, 0x00, 0xB2, 0x97, 0x2A, 0x0A, 0x10, 0x1C, 0xD1, 0x83, 0x01, 0x8B, 0x71, 0xF4,
    0x92, 0x88, 0x80, 0x90, 0x92, 0xB6, 0x19, 0x2C, 0x00, 0xA1, 0x11, 0xEB, 0x31, 0xBA, 0xB7, 0x81,
    0x30, 0xC8, 0x30, 0x29, 0x4C, 0x1B, 0x3E, 0x2A, 0x08, 0xF8, 0x03, 0xD8, 0x82, 0x59, 0x89, 0x01,
    0x88, 0x00, 0x18, 0xA8, 0x11, 0x80, 0x1A, 0x00, 0xA7, 0x79, 0xC0, 0x20, 0x01, 0x0E, 0x18, 0xD1,
    0x23, 0x1E, 0x49, 0xD0, 0x91, 0x94, 0x09, 0x81, 0x1A, 0x19, 0x19, 0x88, 0x28, 0x0C, 0xC2, 0x6C,
    0x19, 0x08, 0x19, 0x19, 0x19, 0x08, 0xD8, 0x41, 0x0F, 0x82, 0xC0, 0x30, 0x08, 0x18, 0xAA, 0x95,
    0x10, 0x09, 0x90, 0xA3, 0xD1, 0xA5, 0xB3, 0xA1, 0xB5, 0xA3, 0xB4, 0xA3, 0xB7, 0xB3, 0xC7, 0x00,
    0x03, 0x2E, 0xB0, 0x91, 0x00, 0x80, 0x81, 0x68, 0x2C, 0x0A, 0x59, 0x8B, 0x80, 0x80, 0x6C, 0x89,
    0x29, 0x18, 0x98, 0x20, 0x1A, 0x19, 0xBC, 0x53, 0xAE, 0x95, 0x20, 0x3B, 0x2F, 0xA0, 0x08, 0x83,
    0x80, 0x5B, 0x8A, 0x83, 0xB1, 0xA2, 0xC3, 0xA3, 0xA4, 0xA2, 0xB3, 0xE2, 0xB4, 0xB3, 0xB7, 0xA2,
    0xB6, 0xC3, 0x11, 0x98, 0xD5, 0xA2, 0x93, 0x90, 0x91, 0x82, 0x0C, 0x83, 0xE3, 0x09, 0xB6, 0x80,
    0x20, 0xD0, 0x80, 0x00, 0x88, 0x81, 0x91, 0x19, 0x0D, 0x82, 0x81, 0x18, 0xCF, 0x85, 0xD9, 0x05,
    0x3B, 0x19, 0x1B, 0x93, 0xA1, 0x39, 0x08, 0x18, 0x18, 0x19, 0x08, 0x89, 0x48, 0x1B, 0x77, 0x69,
    0x2D, 0x99, 0xA2, 0xA1, 0x30, 0x0C, 0x08, 0x43, 0x0F, 0x11, 0x2C, 0x2C, 0x18, 0x2A, 0x7B, 0x8A,
    0x80, 0x30, 0x9B, 0x00, 0x90, 0x4C, 0x99, 0xA2, 0xA4, 0xF3, 0x58, 0x2A, 0x2C, 0x98, 0x01, 0x08,
    0x00, 0x2B, 0x3B, 0x92, 0xA1, 0xF8, 0x95, 0x29, 0x08, 0x8E, 0x06, 0x1A, 0x89, 0x82, 0x00, 0xA7,
    0x5A, 0x9A, 0x92, 0x08, 0xA9, 0x58, 0x08, 0x08, 0x38, 0x10, 0x1F, 0x81, 0x90, 0x5B, 0x9A, 0x91,
    0x91, 0xA1, 0x02, 0xA0, 0x81, 0x70, 0x8B, 0x3D, 0xB8, 0x95, 0x80, 0xE4, 0x10, 0xB0, 0x31, 0x2A,
    0x0A, 0x80, 0x30, 0x9B, 0xF2, 0x6C, 0x18, 0x09, 0x18, 0x19, 0x09, 0x49, 0x9D, 0xB6, 0x16, 0x1C,
    0x88, 0x18, 0xF4, 0x00, 0x80, 0x80, 0x20, 0x8A, 0x08, 0x08, 0x40, 0x1D, 0x19, 0x39, 0xD0, 0x01,
    0x09, 0x08, 0x80, 0x90, 0x80, 0xF1, 0x03, 0x09, 0x19, 0xF1, 0x14, 0x8B, 0xC3, 0x80, 0x5A, 0x88,
    0xB2, 0xF1, 0x90, 0x32, 0xC9, 0x7B, 0x80, 0x00, 0x08, 0x4C, 0x48, 0x1C, 0x10, 0x39, 0xAB, 0xE2,
    0x41, 0x90, 0x2C, 0x5A, 0xB9, 0xC6, 0x30, 0x1B, 0x80, 0x28, 0xD2, 0x08, 0x03, 0xF0, 0x91, 0x80,
    0x81, 0xF3, 0x01, 0x88, 0x10, 0xD8, 0x18, 0xB0, 0x95, 0x11, 0xC9, 0x32, 0x9A, 0x80, 0x9A, 0x34,
    0x19, 0x88, 0x10, 0x2A, 0x1D, 0x02, 0x88, 0x40, 0xD9, 0xB2, 0xA3, 0xC7, 0xA2, 0x93, 0xC7, 0x84,
    0xA1, 0xB3, 0x2B, 0xB8, 0x91, 0x91, 0x00, 0xA1, 0x20, 0x7A, 0xB9, 0x81, 0x72, 0x0C, 0xA2, 0x19,
    0x09, 0x18, 0xB8, 0x7F, 0x0B, 0x82, 0x90, 0x81, 0xA8, 0x2F, 0x12, 0x2F, 0x91, 0x8B, 0x01, 0x29,
    0x5A, 0x92, 0x00, 0xF9, 0x00, 0x30, 0x19, 0x0E, 0x32, 0x12, 0xBB, 0x0E, 0x82, 0x87, 0x8A, 0xA4,
    0xA0, 0x91, 0x00, 0xA5, 0xD3, 0x11, 0xA8, 0x09, 0x18, 0x85, 0x4B, 0xAB, 0x81, 0x20, 0xC6, 0x48,
    0xAA, 0x23, 0x8F, 0x98, 0x12, 0x80, 0x90, 0xBA, 0x86, 0x48, 0x1D, 0x91, 0x18, 0x80, 0xAB, 0x07,
    0x9A, 0xB2, 0x00, 0x48, 0xB8, 0x50, 0x09, 0x02, 0xBA, 0x07, 0x19, 0xB5, 0x18, 0x0A, 0x22, 0xE1,
    0x4A, 0x1A, 0x89, 0x18, 0xB2, 0x88, 0x81, 0x98, 0x31, 0x87, 0x3B, 0xF4, 0xA1, 0x13, 0x81, 0xF8,
    0x18, 0xA1, 0x08, 0x80, 0x2E, 0x90, 0x82, 0xC8, 0xB5, 0x49, 0x19, 0x1E, 0x39, 0x10, 0x8D, 0x38,
    0xC2, 0x09, 0x7A, 0x98, 0x29, 0x4A, 0x80, 0x0C, 0x03, 0x80, 0x08, 0x62, 0x9B, 0x08, 0x08, 0x88,
    0x28, 0x7C, 0xA2, 0x21, 0x1F, 0x28, 0x98, 0x8A, 0x08, 0x48, 0xF2, 0x01, 0xCB, 0xFF, 0x52, 0x00,
    0x30, 0x3A, 0xAA, 0x12, 0xC9, 0xC6, 0x82, 0xB9, 0x12, 0x2E, 0x92, 0x19, 0x88, 0x5C, 0x99, 0x18,
    0x10, 0x18, 0x8C, 0x92, 0xF8, 0x20, 0xF1, 0xA4, 0xA1, 0xA3, 0x02, 0xC0, 0x21, 0x0E, 0x23, 0x1B,
    0x84, 0xAA, 0x32, 0x1F, 0x3A, 0x29, 0x98, 0xC1, 0x91, 0x25, 0x0D, 0x18, 0x91, 0x82, 0x0F, 0x91,
    0x80, 0x92, 0x89, 0x20, 0x3C, 0xC5, 0x88, 0x91, 0x80, 0x18, 0x08, 0x19, 0x18, 0xFF, 0x13, 0xB0,
    0x82, 0x81, 0x90, 0x91, 0xC0, 0xC3, 0xD5, 0x09, 0x38, 0x94, 0x90, 0x81, 0xA1, 0xB1, 0x31, 0x18,
    0x19, 0x7B, 0x8A, 0x29, 0x3B, 0x37, 0x0A, 0xF2, 0x50, 0x1A, 0x9B, 0x29, 0x7B, 0x19, 0x91, 0x89,
    0xB0, 0x37, 0x89, 0x8D, 0x91, 0x20, 0xF3, 0x2A, 0x08, 0x80, 0x18, 0x9A, 0x84, 0x80, 0x29, 0x3A,
    0x1F, 0x10, 0x2A, 0x3D, 0x09, 0x38, 0x0A, 0x5A, 0xFC, 0x22, 0x98, 0x4D, 0x18, 0x19, 0x08, 0x88,
    0x89, 0x87, 0x3A, 0x5B, 0xA9, 0x90, 0x05, 0x9A, 0x00, 0xA6, 0x89, 0x84, 0x3B, 0x20, 0xEA, 0x94,
    0x0A, 0x90, 0x81, 0x13, 0xCC, 0x02, 0x92, 0x0A, 0x00, 0x18, 0x1A, 0xA8, 0x84, 0x78, 0x0C, 0x19,
    0x79, 0xF2, 0x91, 0xA1, 0x38, 0x99, 0x58, 0x3C, 0x98, 0xB1, 0x49, 0x81, 0x28, 0xDB, 0x03, 0x08,
    0x18, 0x4A, 0xB0, 0x50, 0xF2, 0x01, 0x59, 0xAA, 0x00, 0x02, 0x8B, 0x08, 0x61, 0xC0, 0x08, 0x88,
    0xB3, 0x72, 0x1D, 0x09, 0xC1, 0x14, 0x8B, 0x5A, 0xD0, 0x20, 0x89, 0x18, 0xC1, 0x21, 0x09, 0x08,
    0x08, 0x4F, 0xB9, 0x22, 0xC2, 0x6B, 0x89, 0x91, 0x81, 0xA1, 0x10, 0xE1, 0x30, 0x1B, 0xB2, 0xA1,
    0x13, 0x29, 0x09, 0x78, 0x2B, 0x48, 0x0E, 0x68, 0xB8, 0xA0, 0xA4, 0x81, 0xA7, 0x08, 0x89, 0x80,
    0x91, 0xA1, 0xA7, 0x80, 0x80, 0x88, 0x68, 0xA8, 0xB3, 0xE8, 0x94, 0xA1, 0x00, 0x88, 0x7A, 0x89,
    0x49, 0x1B, 0x10, 0x1E, 0xC2, 0x12, 0xAB, 0x14, 0x0D, 0x10, 0xA1, 0x93, 0x00, 0xA8, 0x03, 0x90,
    0x00, 0x98, 0x02, 0x29, 0x99, 0xB2, 0x43, 0xB7, 0x9A, 0x01, 0x97, 0x7B, 0x0B, 0x78, 0xC0, 0x31,
    0x2D, 0x1B, 0x29, 0x5A, 0x00, 0xA9, 0x09, 0x30, 0x4D, 0xA0, 0x1D, 0x20, 0x99, 0xC0, 0x21, 0xB2,
    0x5C, 0x08, 0x19, 0xBB, 0xE6, 0x83, 0xA1, 0x81, 0x28, 0x19, 0x9A, 0x82, 0x4E, 0x08, 0x3D, 0x80,
    0x00, 0x2A, 0xF3, 0x2A, 0x12, 0x0A, 0x80, 0x91, 0x91, 0x91, 0x01, 0xA7, 0xA7, 0x98, 0x31, 0x4A,
    0x18, 0x8F, 0x88, 0x00, 0x09, 0xA4, 0x69, 0xB8, 0x91, 0x80, 0xA1, 0x25, 0x4D, 0x9A, 0x08, 0x08,
    0x08, 0x0A, 0x93, 0xF2, 0xA2, 0x89, 0xD6, 0xA3, 0x38, 0x3C, 0x80, 0x2D, 0x08, 0xB0, 0xC3, 0x05,
    0x08, 0x99, 0xB4, 0xA2, 0x20, 0xE1, 0x11, 0x88, 0x13, 0x90, 0xF2, 0x49, 0x3A, 0x0C, 0x40, 0x3C,
    0x99, 0x90, 0x43, 0xCA, 0x93, 0x4C, 0xC0, 0x91, 0x81, 0x81, 0x09, 0x80, 0x08, 0x1A, 0x88, 0x92,
    0x00, 0xA9, 0x22, 0x1B, 0xFF, 0x96, 0x91, 0x91, 0x91, 0xC2, 0xF4, 0x00, 0x28, 0x0D, 0x49, 0xB1,
    0x48, 0x08, 0xA8, 0xE2, 0x83, 0x81, 0x80, 0x4B, 0x80, 0x72, 0x99, 0x3B, 0xD1, 0x91, 0x82, 0x4A,
    0xB0, 0x08, 0x08, 0x08, 0x37, 0x8F, 0x80, 0x80, 0x80, 0xA1, 0x43, 0x2D, 0x3B, 0xA8, 0x94, 0x1B,
    0x19, 0x89, 0x7D, 0x2C, 0x1A, 0x82, 0xA0, 0xA2, 0xF2, 0x82, 0x1A, 0x10, 0x81, 0x1D, 0x02, 0x3E,
    0x91, 0x2A, 0x99, 0x03, 0xB2, 0xE8, 0x81, 0x17, 0x8B, 0x08, 0x80, 0x94, 0x2B, 0x41, 0x8D, 0x48,
    0x8A, 0x80, 0x33, 0xFA, 0x7A, 0x88, 0xA1, 0xC2, 0x82, 0x02, 0x98, 0x1D, 0x59, 0xA9, 0x91, 0xB1,
    0x04, 0x8C, 0x12, 0x69, 0x9A, 0x80, 0x80, 0xC8, 0x85, 0x90, 0x0C, 0x84, 0xAA, 0x04, 0x0B, 0x49,
    0xC1, 0x22, 0xAC, 0x93, 0x60, 0x08, 0x2D, 0x80, 0x00, 0xB4, 0x38, 0xF3, 0x08, 0x80, 0x40, 0xAA,
    0x91, 0x80, 0x53, 0x98, 0x3E, 0xB1, 0x82, 0x8F, 0x10, 0x80, 0x00, 0x38, 0xB9, 0x97, 0xC2, 0x08,
    0x08, 0x88, 0x39, 0x09, 0x1F, 0x91, 0xA2, 0xD0, 0x51, 0xE2, 0x98, 0x03, 0x6A, 0x9A, 0xD3, 0x21,
    0x0B, 0x38, 0xB9, 0x85, 0x81, 0x28, 0x98, 0xE9, 0x22, 0xB3, 0x98, 0x81, 0x23, 0x1F, 0xA1, 0x99,
    0x5B, 0x23, 0x0E, 0x38, 0x10, 0x00, 0x0F, 0x98, 0x01, 0x89, 0x80, 0x80, 0x70, 0x3C, 0xA1, 0xA8,
    0x80, 0x80, 0x19, 0x09, 0x20, 0x8F, 0x83, 0x00, 0x91, 0xA0, 0x80, 0xA0, 0xF3, 0x40, 0x2E, 0x80,
    0x3E, 0x00, 0xA9, 0xD3, 0xF3, 0x05, 0x8B, 0x93, 0xA1, 0x69, 0xA0, 0xA3, 0x09, 0x49, 0x09, 0x28,
    0xF2, 0x80, 0x18, 0x84, 0xD0, 0x08, 0x21, 0xC8, 0x80, 0x80, 0x30, 0xC5, 0x19, 0x3A, 0xA1, 0x1B,
    0x19, 0x8A, 0x00, 0x91, 0x1A, 0x08, 0x42, 0x1F, 0x3E, 0x2C, 0xA2, 0x81, 0xFB, 0xB4, 0x39, 0xE3,
    0x21, 0x90, 0x2E, 0x09, 0xA2, 0x59, 0x98, 0x11, 0xA0, 0x20, 0x18, 0x7B, 0x03, 0xAD, 0x81, 0x80,
    0x08, 0x00, 0x78, 0xD1, 0x80, 0x38, 0x28, 0x3F, 0x99, 0xA1, 0x00, 0x87, 0x9A, 0x95, 0x09, 0x2A,
    0x02, 0xAB, 0xB1, 0x87, 0x0A, 0x88, 0x97, 0x0A, 0x80, 0x18, 0x88, 0x80, 0x00, 0x3D, 0xA8, 0x9B,
    0x04, 0xE3, 0x82, 0x1F, 0xB3, 0x28, 0xD3, 0x48, 0x88, 0x00, 0x08, 0x19, 0x98, 0x81, 0x80, 0x79,
    0x89, 0x08, 0x18, 0x98, 0x19, 0x01, 0xF1, 0x72, 0xB9, 0x80, 0x20, 0x19, 0x07, 0x80, 0xE3, 0x8A,
    0x01, 0x0A, 0x91, 0x94, 0x1B, 0x7A, 0xA8, 0x00, 0xF0, 0xB2, 0x13, 0x09, 0x3C, 0x08, 0xAD, 0x87,
    0x4B, 0x98, 0x10, 0x19, 0x1F, 0x11, 0x89, 0x92, 0x1C, 0x94, 0x80, 0x91, 0xB0, 0x31, 0x88, 0x08,
    0xF1, 0x12, 0x98, 0xA2, 0x87, 0xB8, 0x81, 0x80, 0x28, 0x87, 0x0D, 0x28, 0xD2, 0x22, 0x2A, 0xF8,
    0x02, 0x1B, 0x88, 0x00, 0x09, 0x88, 0x81, 0x00, 0x18, 0xBF, 0x15, 0x09, 0x90, 0x01, 0xCF, 0x33,
    0xCB, 0x86, 0x0A, 0xD2, 0x31, 0x09, 0x18, 0x18, 0x09, 0xAC, 0xA7, 0x20, 0x9B, 0x87, 0x98, 0x00,
    0x01, 0x89, 0x93, 0x90, 0x3B, 0x3A, 0x5C, 0x8A, 0x28, 0x0A, 0x88, 0xE0, 0x73, 0xA8, 0x82, 0xB2,
    0x1B, 0x1A, 0x81, 0x09, 0x2D, 0x97, 0x98, 0x10, 0x98, 0x08, 0x80, 0x2E, 0x92, 0xF3, 0x5C, 0xC0,
    0x12, 0x2C, 0x00, 0xE8, 0x03, 0x1B, 0x28, 0x4C, 0x09, 0xB0, 0x4A, 0x0A, 0xA7, 0x19, 0x81, 0x3D,
    0x01, 0x0A, 0x82, 0x81, 0x09, 0x88, 0x08, 0xCA, 0x05, 0x90, 0x05, 0xF3, 0x08, 0x28, 0xF3, 0x80,
    0xA2, 0xA2, 0x50, 0x9A, 0x90, 0x91, 0x80, 0x80, 0xA1, 0xF2, 0x38, 0x4A, 0x89, 0x90, 0x69, 0x09,
    0xE9, 0x22, 0x1F, 0x18, 0xA8, 0x04, 0x98, 0xD2, 0x28, 0xA9, 0x06, 0x8A, 0x02, 0x29, 0x08, 0x80,
    0x09, 0x91, 0x1E, 0x68, 0xD2, 0x02, 0x1B, 0x19, 0x29, 0xC1, 0x84, 0x1C, 0x39, 0xA8, 0x00, 0x80,
    0x98, 0x87, 0xAA, 0x40, 0x7A, 0x9A, 0x81, 0x80, 0x3D, 0x18, 0x19, 0xB6, 0x98, 0x00, 0x91, 0x91,
    0x1F, 0x88, 0x40, 0x19, 0x99, 0xD0, 0x04, 0x80, 0x08, 0x80, 0xC0, 0x3F, 0x92, 0x81, 0x90, 0x91,
    0xA1, 0xC4, 0xF4, 0x11, 0x08, 0xC0, 0x12, 0xA1, 0x19, 0xB3, 0x08, 0x90, 0x71, 0x1D, 0x18, 0x82,
    0x2D, 0xB3, 0x0B, 0x80, 0x71, 0x9A, 0x08, 0x08, 0x88, 0x38, 0x1C, 0x7A, 0xC8, 0x93, 0x88, 0x92,
    0x88, 0x4C, 0x2D, 0xF3, 0x01, 0xA0, 0xA0, 0x41, 0x18, 0xE9, 0x21, 0x08, 0x80, 0x80, 0xAC, 0x43,
    0xB8, 0xE3, 0x58, 0x08, 0xA1, 0x91, 0x91, 0x84, 0x9A, 0x15, 0x3F, 0x99, 0xF3, 0x04, 0x4F, 0x00,
    0x88, 0x00, 0x08, 0x80, 0x90, 0x91, 0xA2, 0xC4, 0xA7, 0xA0, 0xA5, 0x08, 0x80, 0x80, 0x80, 0x68,
    0x0B, 0x08, 0x89, 0x08, 0x80, 0x81, 0x2A, 0x81, 0xB1, 0xE0, 0x7F, 0x3A, 0x1D, 0x8A, 0xB6, 0x39,
    0x81, 0x89, 0x92, 0x92, 0x10, 0xA1, 0x10, 0x3B, 0x0F, 0x92, 0x82, 0xB6, 0x1A, 0x00, 0xA1, 0x17,
    0x0D, 0xA2, 0x04, 0xD3, 0x9A, 0x00, 0x30, 0x7B, 0x8A, 0xB1, 0x32, 0x1F, 0x90, 0x08, 0x00, 0xD1,
    0x84, 0x1A, 0x08, 0x3A, 0xB0, 0x81, 0x08, 0xA9, 0x83, 0x18, 0x28, 0x2E, 0x89, 0xF8, 0x41, 0x2E,
    0x00, 0x0E, 0x02, 0x80, 0xC8, 0x04, 0x88, 0xA1, 0x3F, 0x10, 0x88, 0x5D, 0xA1, 0xA1, 0x18, 0x90,
    0x08, 0x90, 0x24, 0x1E, 0x08, 0x89, 0x00, 0xA1, 0x01, 0x98, 0x41, 0xC7, 0x24, 0x0F, 0x88, 0x18,
    0x08, 0x09, 0x79, 0x3A, 0xAA, 0xA3, 0x80, 0x2B, 0x00, 0x00, 0xB0, 0x92, 0xA8, 0x95, 0x19, 0xD4,
    0x3F, 0x0F, 0x12, 0x2A, 0x30, 0x1D, 0xC9, 0x82, 0x20, 0x80, 0x80, 0x18, 0x08, 0x90, 0x00, 0x2B,
    0x92, 0xC2, 0xA0, 0xE3, 0x57, 0xD0, 0x92, 0x1A, 0x09, 0x80, 0x59, 0xB2, 0x0B, 0x81, 0x63, 0x9C,
    0xA5, 0x09, 0x00, 0x88, 0x09, 0x81, 0x90, 0x01, 0x3A, 0x8A, 0x10, 0xE0, 0x81, 0xA8, 0x03, 0xFA,
    0xA7, 0x5B, 0x4D, 0x9A, 0xA8, 0x35, 0xE4, 0x09, 0x01, 0xA0, 0x18, 0x3C, 0x01, 0x89, 0xA2, 0x96,
    0x88, 0x83, 0x1C, 0x20, 0x4E, 0x99, 0x80, 0x80, 0x00, 0x08, 0x88, 0x95, 0x1A, 0x09, 0x08, 0x88,
    0x01, 0x2B, 0x78, 0xD7, 0xB2, 0x85, 0x8A, 0x95, 0x0A, 0x08, 0x88, 0x00, 0xF8, 0x83, 0x80, 0x80,
    0xC0, 0x91, 0xA5, 0x6A, 0x09, 0x90, 0x2E, 0xA2, 0xA3, 0x22, 0x1E, 0x89, 0x92, 0x91, 0x91, 0x7A,
    0xA0, 0x80, 0x80, 0x80, 0x18, 0x3E, 0xC2, 0x01, 0x08, 0x09, 0xA0, 0x74, 0xB0, 0x1A, 0x09, 0x00,
    0x90, 0xA3, 0x3B, 0x3C, 0x0F, 0xA3, 0x91, 0xB3, 0x11, 0x09, 0x81, 0xB0, 0xC5, 0xF0, 0x02, 0x10,
    0x3F, 0xC8, 0x94, 0x8D, 0x68, 0x08, 0xB8, 0x84, 0x1B, 0x80, 0x1B, 0x90, 0x07, 0x0C, 0x84, 0x08,
    0x80, 0x18, 0xEA, 0x60, 0x88, 0x82, 0x1B, 0x49, 0xA8, 0xC3, 0xA5, 0x88, 0x90, 0x22, 0x9B, 0x20,
    0xD0, 0x10, 0xF3, 0x93, 0x29, 0x5B, 0x0A, 0xA0, 0xA2, 0x81, 0xB1, 0x86, 0x9C, 0x83, 0x18, 0x88,
    0xB1, 0x97, 0xF0, 0x50, 0x0A, 0x80, 0x8A, 0x29, 0xC1, 0xB6, 0x11, 0xA0, 0xA2, 0x7B, 0x80, 0x98,
    0x82, 0xB5, 0x88, 0xAA, 0x28, 0x95, 0x92, 0x24, 0x4D, 0x8B, 0x08, 0x90, 0x81, 0x90, 0x81, 0xA1,
    0x71, 0x0C, 0x18, 0x70, 0x8A, 0xD3, 0x80, 0xB2, 0x96, 0x89, 0x80, 0x90, 0x32, 0x8C, 0x08, 0xC4,
    0x90, 0x23, 0xBB, 0xC2, 0x91, 0x39, 0x7D, 0xBA, 0x42, 0x91, 0x1A, 0x0D, 0xA4, 0x1A, 0xB5, 0x00,
    0x59, 0x0B, 0x82, 0x18, 0xE2, 0x10, 0x08, 0x88, 0x10, 0x7A, 0xB8, 0x92, 0xC0, 0x11, 0x08, 0x81,
    0xB8, 0x17, 0x1D, 0x39, 0xD3, 0x81, 0x3B, 0x2B, 0x7A, 0xC0, 0xA3, 0x80, 0x19, 0x28, 0xF3, 0xA4,
    0x09, 0x29, 0x5C, 0x99, 0x81, 0x80, 0xC0, 0x96, 0x9A, 0x22, 0x08, 0x09, 0x80, 0x80, 0xBD, 0x97,
    0x01, 0x18, 0x88, 0xB8, 0x04, 0x0B, 0x6D, 0xA8, 0x83, 0x08, 0x80, 0x08, 0x80, 0x18, 0xB3, 0xC7,
    0x80, 0x50, 0x0C, 0x10, 0x7A, 0x0B, 0x91, 0x88, 0x95, 0x8A, 0x30, 0x1C, 0x58, 0x3C, 0xA8, 0xC3,
    0x80, 0x88, 0x91, 0x5C, 0x90, 0x90, 0x5B, 0x10, 0x9B, 0x82, 0x80, 0x91, 0x6B, 0x88, 0x80, 0xF0,
    0x59, 0x88, 0x2B, 0x5C, 0x82, 0xB9, 0xA4, 0x5A, 0x08, 0x19, 0x88, 0x09, 0xC1, 0x87, 0x09, 0x88,
    0x4A, 0x09, 0x00, 0xD2, 0x91, 0x92, 0x00, 0xA6, 0x08, 0x1A, 0x19, 0x79, 0xB8, 0x18, 0x5A, 0xF2,
    0x82, 0x29, 0x1C, 0xA2, 0x88, 0x10, 0xBA, 0x86, 0x08, 0x80, 0x90, 0x81, 0x88, 0x11, 0xA8, 0xF2,
    0x90, 0x4F, 0x2B, 0xB1, 0x96, 0x18, 0x08, 0x09, 0xC8, 0xA6, 0x20, 0x08, 0x09, 0xC9, 0x41, 0x08,
    0x88, 0x00, 0x19, 0x18, 0x70, 0xC0, 0xE3, 0x23, 0xCA, 0x13, 0x1F, 0x18, 0xB1, 0x80, 0x90, 0x63,
    0x8A, 0x0A, 0x08, 0x78, 0xC9, 0xA2, 0x18, 0x7C, 0x89, 0xA4, 0x98, 0x49, 0x9A, 0x83, 0x1A, 0x01,
    0xEA, 0x91, 0x32, 0x29, 0xAA, 0xA5, 0x59, 0xBA, 0x04, 0xD0, 0x11, 0x3B, 0xC1, 0x58, 0x08, 0x19,
    0x08, 0x09, 0x00, 0xBA, 0x22, 0x7C, 0x2A, 0x09, 0x80, 0x00, 0x89, 0x92, 0x78, 0x3B, 0xC0, 0x80,
    0x80, 0x00, 0x70, 0xC0, 0x18, 0xB4, 0x89, 0x18, 0x98, 0xD3, 0x02, 0x19, 0x0A, 0x38, 0x5C, 0xD7,
    0x80, 0x00, 0x08, 0x98, 0x0F, 0xD4, 0x11, 0x90, 0x29, 0x81, 0x0A, 0x83, 0x80, 0x1E, 0x82, 0x2E,
    0x10, 0x80, 0xF9, 0x84, 0x88, 0x81, 0x00, 0x08, 0x88, 0x08, 0x81, 0xA8, 0x92, 0x20, 0x90, 0x37,
    0x8F, 0x80, 0x80, 0x00, 0x08, 0x90, 0x70, 0x9A, 0x80, 0x80, 0x00, 0x7A, 0xDA, 0x03, 0x33, 0x3F,
    0xAB, 0x81, 0x91, 0xAA, 0x14, 0x19, 0x90, 0x00, 0xF1, 0x12, 0x1F, 0xD3, 0x4A, 0xB1, 0xC2, 0x40,
    0x8B, 0x01, 0x4A, 0x00, 0x18, 0x1C, 0x01, 0x0B, 0x94, 0x81, 0x09, 0xA2, 0x99, 0x04, 0x29, 0xA8,
    0x91, 0xF4, 0x02, 0xB0, 0xA1, 0x91, 0xD3, 0x27, 0x9D, 0x7B, 0xA1, 0x80, 0xB1, 0x59, 0x08, 0x29,
    0xA0, 0x80, 0x90, 0x92, 0x90, 0x30, 0xCA, 0x68, 0x99, 0x88, 0x1F, 0xF1, 0x29, 0x80, 0x68, 0x08,
    0x90, 0xD0, 0x08, 0x03, 0x4F, 0x91, 0x88, 0xA8, 0x91, 0x04, 0x08, 0x09, 0x80, 0x00, 0x91, 0x88,
    0x27, 0x2D, 0x0A, 0x09, 0xB1, 0x20, 0x88, 0xB1, 0x00, 0xC7, 0x18, 0xA5, 0x09, 0x79, 0x0A, 0x69,
    0xC9, 0x42, 0x98, 0x8A, 0x90, 0x52, 0xC1, 0x8E, 0x32, 0x99, 0x80, 0x90, 0x01, 0x89, 0x01, 0x88,
    0x48, 0xCF, 0x04, 0x80, 0xBA, 0x94, 0x82, 0x59, 0x09, 0x80, 0xC8, 0x58, 0x88, 0xA1, 0x6C, 0x08,
    0x88, 0x00, 0x90, 0x61, 0x0A, 0xAB, 0x03, 0x18, 0xC6, 0x3A, 0xB2, 0x96, 0x0A, 0x28, 0x8B, 0x01,
    0x17, 0xA8, 0x2B, 0x8B, 0xA5, 0x22, 0x8D, 0x88, 0x80, 0xA6, 0x19, 0x08, 0x19, 0x71, 0xBA, 0x93,
    0x80, 0x2A, 0xD9, 0x3E, 0x93, 0x90, 0x38, 0x3A, 0xAF, 0x04, 0x90, 0x0A, 0x94, 0xA1, 0x38, 0x0F,
    0x92, 0xA9, 0x27, 0x0A, 0x08, 0x9A, 0x24, 0xF2, 0x80, 0x80, 0x91, 0x00, 0xA6, 0x89, 0x80, 0x88,
    0x01, 0x90, 0x80, 0x18, 0x28, 0x6A, 0x97, 0x8B, 0xC0, 0x12, 0x09, 0xA1, 0x10, 0x90, 0xF1, 0x20,
    0x2A, 0x19, 0x08, 0x19, 0x39, 0x3D, 0xAF, 0x86, 0x99, 0x95, 0x90, 0x19, 0x82, 0x00, 0x1A, 0x01,
    0xD6, 0xA8, 0x11, 0xC2, 0x4F, 0x20, 0x0B, 0x90, 0x00, 0x20, 0x9A, 0x00, 0x88, 0x88, 0x21, 0x3B,
    0x0D, 0x82, 0x4A, 0x08, 0x1A, 0x7E, 0x18, 0x59, 0xE5, 0x88, 0x80, 0x40, 0xB9, 0x93, 0x19, 0x18,
    0x80, 0xB7, 0x0A, 0x2B, 0x82, 0x09, 0x81, 0x88, 0x80, 0x00, 0xFA, 0x95, 0x92, 0x8F, 0x91, 0x85,
    0xE0, 0x21, 0x08, 0xA8, 0x03, 0xD8, 0x3A, 0x4A, 0x92, 0x80, 0x80, 0xA1, 0xF3, 0x69, 0x19, 0x29,
    0xA8, 0x30, 0xD0, 0x81, 0x90, 0x32, 0x2E, 0x01, 0x88, 0x97, 0x0D, 0x13, 0x89, 0x0D, 0x40, 0x9A,
    0x88, 0x30, 0x6B, 0x9A, 0x90, 0x00, 0x00, 0x09, 0x28, 0x0F, 0xC0, 0x04, 0x2F, 0xB1, 0x21, 0x19,
    0x8B, 0xB5, 0x0B, 0x43, 0x1E, 0xA1, 0x94, 0x18, 0x08, 0x90, 0x10, 0x88, 0x09, 0x91, 0x00, 0x88,
    0x3F, 0x00, 0x08, 0x80, 0x18, 0xA7, 0x2C, 0x18, 0x08, 0x79, 0xE2, 0x80, 0xEB, 0xFB, 0x4D, 0x00,
    0x73, 0x9B, 0x18, 0x08, 0xC5, 0x10, 0xA8, 0x80, 0x90, 0x61, 0xC8, 0x91, 0x00, 0x08, 0x80, 0xC9,
    0x84, 0x80, 0x40, 0x8B, 0xA1, 0xF1, 0x52, 0xC9, 0x11, 0x98, 0x19, 0xC2, 0x58, 0x8B, 0xB1, 0x14,
    0xD8, 0x40, 0x08, 0x90, 0xB2, 0x79, 0x1B, 0x88, 0xA3, 0x90, 0x81, 0x40, 0x9B, 0xA1, 0x87, 0x5A,
    0x8A, 0x08, 0x80, 0x90, 0xB1, 0x87, 0x0A, 0x80, 0xB1, 0x17, 0x1D, 0x28, 0x3C, 0xB0, 0x00, 0x88,
    0x08, 0x08, 0x00, 0x09, 0xA1, 0xF3, 0x10, 0xF8, 0x03, 0x88, 0xF2, 0xA2, 0x21, 0x09, 0xCA, 0xA6,
    0x48, 0x2A, 0xAA, 0xA1, 0x6B, 0xB3, 0x7B, 0x08, 0x0A, 0x38, 0xB2, 0xD8, 0x33, 0x0B, 0x30, 0x7C,
    0x9A, 0xA5, 0x2A, 0x59, 0xB9, 0x94, 0x19, 0x19, 0xA0, 0x32, 0xCA, 0x80, 0x80, 0xA1, 0x23, 0x44,
    0x8F, 0x08, 0x09, 0xB6, 0x6A, 0xA9, 0x01, 0x08, 0x10, 0xA9, 0xB6, 0x18, 0x08, 0xA0, 0x3A, 0xC2,
    0xB1, 0x7D, 0x8A, 0x84, 0x88, 0x80, 0x09, 0xE1, 0x18, 0x10, 0x83, 0x3D, 0x80, 0x2B, 0x01, 0x80,
    0xA0, 0x10, 0x1A, 0x79, 0xE6, 0x92, 0x11, 0x0C, 0x28, 0xA0, 0x29, 0xC4, 0x10, 0x00, 0x4C, 0xC0,
    0xC2, 0x30, 0x8A, 0x10, 0x70, 0x8B, 0xA0, 0x81, 0x91, 0x08, 0x91, 0xC1, 0x91, 0x07, 0x1C, 0x19,
    0xDA, 0x85, 0x80, 0xA0, 0x12, 0x99, 0xE2, 0x8A, 0x38, 0x85, 0xB0, 0x38, 0x81, 0x90, 0xE5, 0x5C,
    0xA9, 0x03, 0x18, 0x40, 0x8F, 0x82, 0x80, 0x00, 0x28, 0xEB, 0x03, 0x08, 0x80, 0x08, 0x08, 0x36,
    0xEC, 0x48, 0xA1, 0x19, 0x90, 0x10, 0x2A, 0xC2, 0x97, 0x0A, 0x88, 0x00, 0x1A, 0xA5, 0x29, 0x98,
    0x08, 0x68, 0xA9, 0x8A, 0xB6, 0x20, 0x08, 0xDA, 0x04, 0x00, 0x98, 0x4C, 0x98, 0xD2, 0x03, 0x29,
    0x0F, 0x10, 0xC0, 0x03, 0x18, 0x09, 0xA9, 0x13, 0x08, 0x80, 0x91, 0x19, 0x88, 0x72, 0xAB, 0x03,
    0x1A, 0xCF, 0xB5, 0x22, 0x2F, 0x80, 0x91, 0x80, 0x90, 0x2D, 0x83, 0x90, 0x80, 0x82, 0x2A, 0x18,
    0x98, 0x08, 0x71, 0x0C, 0x18, 0x7B, 0x08, 0xE3, 0x80, 0x59, 0xC0, 0x80, 0x81, 0x18, 0x84, 0x0C,
    0xB2, 0x44, 0xC0, 0x0B, 0xB3, 0x88, 0x10, 0x0B, 0x30, 0x0B, 0xB1, 0x90, 0x77, 0xB9, 0x08, 0x80,
    0x80, 0x00, 0xF1, 0x8F, 0x05, 0x88, 0xC1, 0x89, 0x33, 0x1B, 0x01, 0xB8, 0x3E, 0x02, 0x80, 0xA9,
    0x03, 0x29, 0x57, 0x0E, 0x12, 0x8D, 0x00, 0x90, 0x41, 0xBA, 0x12, 0x99, 0x20, 0xD6, 0x39, 0x98,
    0x50, 0xC8, 0x00, 0x09, 0x20, 0x93, 0x8E, 0x91, 0x81, 0x38, 0xE9, 0x01, 0xA0, 0x69, 0xAA, 0x95,
    0x29, 0x08, 0x80, 0x3D, 0x80, 0x90, 0x3B, 0x92, 0xF9, 0x40, 0xE9, 0x22, 0x88, 0x39, 0x98, 0x3A,
    0x91, 0x3C, 0xB5, 0x78, 0xA9, 0xA5, 0x88, 0x18, 0x29, 0xC1, 0x12, 0x0B, 0x88, 0x28, 0xA4, 0x0A,
    0x08, 0x65, 0xBB, 0x80, 0x95, 0x1A, 0x09, 0x88, 0x11, 0x17, 0x09, 0x1F, 0xA2, 0x89, 0x08, 0x80,
    0x78, 0xB9, 0xD8, 0x14, 0x88, 0x28, 0xB0, 0xD2, 0x2B, 0x41, 0x88, 0x80, 0x8F, 0x94, 0x10, 0x2D,
    0xB0, 0x93, 0x7B, 0x00, 0xB0, 0x02, 0x2A, 0xC1, 0x81, 0x4B, 0x28, 0xA4, 0x9B, 0x91, 0x07, 0x8B,
    0x08, 0x52, 0x18, 0xCB, 0x80, 0x88, 0x62, 0x0C, 0x88, 0x00, 0xA2, 0x32, 0x2C, 0x2A, 0xEA, 0x91,
    0x10, 0x09, 0xA0, 0xA2, 0x72, 0x8B, 0x80, 0xD0, 0x31, 0x99, 0x11, 0x8F, 0x94, 0xAD, 0x53, 0xCA,
    0x30, 0x01, 0xB8, 0x25, 0xAB, 0x09, 0x04, 0x8E, 0xB4, 0x40, 0x8A, 0x11, 0x19, 0xB2, 0x80, 0x81,
    0x80, 0x88, 0x19, 0x87, 0x6D, 0x99, 0x10, 0xD1, 0x02, 0x31, 0xCB, 0x08, 0x93, 0x8B, 0x31, 0x07,
    0xBA, 0x99, 0x06, 0x1C, 0x88, 0x41, 0x99, 0x1B, 0xA2, 0x1A, 0x01, 0x0A, 0x98, 0x13, 0x0B, 0x80,
    0x2D, 0xF3, 0xCF, 0x50, 0xB0, 0x19, 0xB2, 0x7A, 0xA2, 0x11, 0x19, 0x3A, 0x9B, 0x84, 0xBA, 0x86,
    0x91, 0x50, 0xBB, 0x02, 0x11, 0x2B, 0x7C, 0xA8, 0x10, 0xB1, 0x59, 0xD6, 0x10, 0x89, 0x80, 0x80,
    0x00, 0x88, 0x80, 0x18, 0x27, 0xBC, 0x12, 0x0B, 0x08, 0x80, 0x00, 0x19, 0x98, 0x10, 0xB1, 0x40,
    0xAB, 0x19, 0xFB, 0xEF, 0x61, 0x08, 0x08, 0xA0, 0x1A, 0xA0, 0xB2, 0xC3, 0x7B, 0x82, 0x80, 0xBC,
    0x50, 0x02, 0x80, 0x09, 0x01, 0x99, 0x20, 0x89, 0x39, 0x20, 0xD7, 0x91, 0x08, 0x80, 0x39, 0x69,
    0xC4, 0x1A, 0x2A, 0x08, 0x5B, 0xE5, 0x20, 0x0A, 0x90, 0xA7, 0x19, 0x09, 0x80, 0x08, 0x18, 0x2A,
    0xE9, 0x24, 0x0B, 0x80, 0x98, 0x02, 0xB9, 0x30, 0x40, 0x5D, 0xE2, 0x80, 0x80, 0x08, 0x80, 0x3E,
    0xCA, 0x92, 0x14, 0x88, 0x9C, 0x01, 0x51, 0x08, 0x80, 0x3A, 0x9F, 0x04, 0x08, 0x08, 0x88, 0x92,
    0x2A, 0x00, 0x2A, 0x08, 0xA7, 0x2C, 0x2A, 0x39, 0x7C, 0xD1, 0x10, 0x82, 0xD0, 0x91, 0x48, 0x8A,
    0x58, 0xB9, 0x81, 0xA1, 0x16, 0x0D, 0x00, 0x09, 0x88, 0x28, 0x09, 0x09, 0x28, 0x8F, 0x03, 0xFB,
    0xB0, 0x53, 0x81, 0x88, 0xE0, 0x3A, 0x98, 0x05, 0x08, 0x91, 0x81, 0x89, 0x4E, 0x80, 0x18, 0x88,
    0x19, 0x81, 0x90, 0x88, 0x88, 0x84, 0x81, 0xA0, 0x67, 0xBB, 0x95, 0x1A, 0x90, 0x88, 0x92, 0x72,
    0x91, 0x8D, 0x58, 0x8A, 0x91, 0x19, 0x80, 0x10, 0xD5, 0x80, 0x18, 0x99, 0x80, 0x91, 0xF1, 0x60,
    0x2A, 0x9D, 0x94, 0x98, 0x84, 0x0E, 0x20, 0x91, 0xC1, 0x5A, 0x00, 0xC9, 0x22, 0x08, 0x98, 0x4A,
    0x80, 0x00, 0x08, 0x90, 0x91, 0x92, 0xC0, 0x6C, 0x88, 0x81, 0xA4, 0x89, 0x90, 0x30, 0x98, 0x54,
    0xD9, 0x39, 0x98, 0x28, 0x7B, 0x19, 0xE1, 0x91, 0x08, 0x92, 0x18, 0x89, 0x10, 0x39, 0x09, 0xDF,
    0x86, 0x08, 0x88, 0x81, 0x88, 0x80, 0xF1, 0x20, 0xF0, 0x6B, 0x18, 0xA9, 0x22, 0x99, 0x03, 0x2A,
    0x8F, 0xA5, 0x10, 0x88, 0x08, 0x80, 0x08, 0x00, 0xF0, 0x21, 0x08, 0x09, 0x00, 0x18, 0x8A, 0x71,
    0xE2, 0x18, 0x88, 0xA0, 0x85, 0x09, 0x04, 0x8E, 0x00, 0x78, 0xB1, 0x89, 0x08, 0x59, 0xC0, 0x00,
    0x80, 0x19, 0xB5, 0x80, 0xC8, 0x61, 0xB8, 0x00, 0x10, 0x88, 0x88, 0x8F, 0x03, 0x80, 0xCA, 0x12,
    0xB5, 0x6A, 0xB8, 0x48, 0x08, 0x88, 0x81, 0xA1, 0x01, 0x09, 0x10, 0x99, 0x00, 0x29, 0x88, 0x4C,
    0xA4, 0x00, 0x7F, 0xB5, 0x09, 0x09, 0x80, 0xA0, 0x07, 0x1C, 0x19, 0x92, 0x5A, 0x81, 0xAA, 0x40,
    0x39, 0xDB, 0x91, 0x00, 0xB2, 0x90, 0x10, 0x89, 0x01, 0x8A, 0x01, 0x8A, 0x98, 0x17, 0xB9, 0x81,
    0x2F, 0x00, 0xA0, 0xB2, 0xFF, 0x49, 0x02, 0x08, 0x00, 0x8A, 0x0F, 0x95, 0x01, 0x98, 0x00, 0x08,
    0x81, 0x08, 0xA1, 0xA2, 0x66, 0xBA, 0x00, 0x09, 0x79, 0xA9, 0x81, 0x20, 0xF3, 0x51, 0xAA, 0x08,
    0x48, 0x2A, 0xD3, 0x0C, 0x82, 0x80, 0x30, 0x95, 0x9C, 0x30, 0xC9, 0x04, 0x80, 0x1C, 0x13, 0x0F,
    0x18, 0xA8, 0x96, 0x09, 0x09, 0x08, 0x00, 0x00, 0x99, 0x2B, 0xE3, 0x40, 0xBE, 0x21, 0x39, 0xB2,
    0x03, 0xBB, 0x25, 0x88, 0x18, 0x29, 0x99, 0x00, 0x10, 0x2C, 0x98, 0x15, 0xAB, 0x42, 0x29, 0x8C,
    0x81, 0x17, 0x0F, 0x00, 0x08, 0x78, 0xC0, 0x80, 0xA4, 0x39, 0x84, 0x11, 0xBE, 0x11, 0x0B, 0x70,
    0xB8, 0x08, 0x80, 0x55, 0x8A, 0xD0, 0x29, 0xB3, 0x89, 0x10, 0x5A, 0xB0, 0xA1, 0x0F, 0x84, 0x08,
    0x80, 0xAA, 0xA5, 0x0B, 0x61, 0x08, 0x48, 0xEA, 0x11, 0x80, 0x1C, 0x83, 0x88, 0x00, 0x88, 0x81,
    0x88, 0x92, 0x80, 0x52, 0x8D, 0x00, 0x1D, 0x71, 0xB3, 0xAA, 0x41, 0xAD, 0xA9, 0x04, 0x50, 0x00,
    0x80, 0x08, 0x08, 0x08, 0x09, 0x92, 0x80, 0x80, 0xC1, 0x70, 0xB9, 0x11, 0x8A, 0x82, 0x18, 0x81,
    0x99, 0x12, 0xAA, 0x3C, 0x10, 0x9E, 0x84, 0x04, 0xAA, 0xC2, 0x01, 0xF1, 0x8F, 0xF4, 0x48, 0x00,
    0x08, 0x8A, 0x83, 0x00, 0xAA, 0x22, 0xF1, 0x48, 0x1D, 0x01, 0x08, 0xC9, 0x04, 0x98, 0x87, 0x1B,
    0x90, 0x5C, 0xA1, 0x08, 0x58, 0x91, 0xC1, 0x28, 0xAA, 0x52, 0x8C, 0x80, 0x08, 0x00, 0x24, 0xEA,
    0x00, 0x38, 0xC0, 0x08, 0x31, 0xAB, 0x88, 0x18, 0xA0, 0x20, 0xB8, 0x12, 0x9A, 0x00, 0xF9, 0x7C,
    0x00, 0x08, 0xAE, 0x04, 0x8C, 0x92, 0x41, 0xB0, 0x11, 0x08, 0x80, 0x08, 0xDF, 0x86, 0x80, 0x00,
    0xC0, 0x4B, 0x01, 0x08, 0x18, 0x09, 0xF2, 0x40, 0x98, 0x10, 0x3A, 0x8B, 0xF2, 0x20, 0x09, 0x02,
    0x1C, 0x40, 0x99, 0xB7, 0x09, 0x18, 0x19, 0x19, 0xC3, 0x29, 0x98, 0x84, 0x0A, 0x78, 0xC8, 0x00,
    0x19, 0x88, 0x30, 0xBF, 0xB6, 0x19, 0x21, 0x18, 0x80, 0x8D, 0x81, 0x84, 0x9D, 0x83, 0x92, 0x3D,
    0xD4, 0x48, 0x09, 0x80, 0x00, 0xAC, 0x02, 0x50, 0x91, 0x91, 0x8A, 0x07, 0x9B, 0x02, 0x3B, 0xB0,
    0x80, 0x09, 0x10, 0x72, 0xA2, 0xBA, 0x90, 0x08, 0x97, 0x6A, 0xC8, 0x14, 0x0C, 0x80, 0x09, 0x80,
    0x18, 0x0C, 0x92, 0xAC, 0x07, 0x08, 0x88, 0x12, 0x8E, 0x93, 0x3A, 0xA0, 0x84, 0x8A, 0x90, 0x0B,
    0x60, 0x08, 0x00, 0xF0, 0x29, 0x92, 0xBB, 0x44, 0x80, 0x93, 0x2C, 0x8D, 0x94, 0x81, 0x08, 0x78,
    0xC4, 0x09, 0x88, 0x00, 0x88, 0x16, 0x9C, 0x83, 0x0B, 0x18, 0x88, 0x08, 0x37, 0x9D, 0x80, 0x41,
    0xB9, 0x80, 0x48, 0x80, 0xC2, 0x1B, 0x90, 0x50, 0x9A, 0xA4, 0x2A, 0x88, 0x52, 0x8D, 0xF0, 0x30,
    0x80, 0x98, 0x1F, 0x02, 0x90, 0x2A, 0xB2, 0xA8, 0x29, 0x0D, 0x07, 0xA0, 0x3B, 0xA4, 0x49, 0xA8,
    0x52, 0xA8, 0x29, 0xA2, 0x0C, 0x10, 0xB6, 0x09, 0x2B, 0x11, 0x07, 0xBA, 0x80, 0x78, 0xC0, 0x82,
    0x0A, 0xB0, 0x71, 0x90, 0x90, 0x19, 0x29, 0xC1, 0x08, 0x08, 0x68, 0xA9, 0x21, 0x0B, 0xB7, 0x08,
    0x08, 0x01, 0x2B, 0x2B, 0x17, 0x1D, 0x99, 0xB1, 0x1E, 0xB4, 0x59, 0x80, 0x08, 0x00, 0xC9, 0x49,
    0xA1, 0x02, 0x08, 0x19, 0xFA, 0x31, 0x98, 0x01, 0x00, 0xB0, 0xC4, 0x5D, 0x80, 0x88, 0x00, 0x22,
    0xBA, 0xD9, 0x04, 0x63, 0x9C, 0x80, 0x80, 0x00, 0x08, 0x08, 0x7B, 0xF2, 0x28, 0x90, 0x10, 0x82,
    0xAB, 0x80, 0x52, 0x29, 0xCA, 0x38, 0xD8, 0xB2, 0x6A, 0x88, 0x80, 0x58, 0xF1, 0x39, 0x9B, 0x04,
    0x08, 0x08, 0x18, 0xBB, 0x87, 0x00, 0xBB, 0x53, 0x9B, 0x13, 0xA8, 0xBB, 0x80, 0x57, 0xA8, 0x0A,
    0x93, 0x28, 0x91, 0x23, 0x8F, 0x04, 0x0B, 0xA2, 0x08, 0x08, 0x07, 0x8C, 0x18, 0x88, 0x68, 0xD2,
    0x08, 0xA2, 0x09, 0x18, 0x08, 0x89, 0x81, 0x08, 0x00, 0x90, 0xE2, 0x67, 0xAB, 0x00, 0x88, 0x91,
    0x39, 0x9A, 0x93, 0x78

};


#define  MANFLY_WAV   5562

__align(2)
const U8 ManFly_wav[5562] =
{
    0x52, 0x49, 0x46, 0x46, 0x6C, 0x2B, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
    0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x44, 0xAC, 0x00, 0x00, 0x6D, 0x56, 0x00, 0x00,
    0x00, 0x04, 0x04, 0x00, 0x02, 0x00, 0xF9, 0x07, 0x66, 0x61, 0x63, 0x74, 0x04, 0x00, 0x00, 0x00,
    0x23, 0x56, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x38, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x01, 0x11, 0x11, 0x12, 0x13, 0x12, 0x02, 0x11, 0x91, 0x11, 0x00, 0x21, 0x21, 0x23, 0x33,
    0x24, 0x32, 0x31, 0x11, 0x11, 0x01, 0x99, 0x01, 0x90, 0x11, 0x01, 0x21, 0x11, 0x00, 0x90, 0xA9,
    0xB9, 0xA9, 0x9B, 0x9B, 0x9B, 0x9B, 0xCB, 0xBB, 0xBD, 0xAC, 0xBB, 0xCB, 0xDD, 0xCB, 0xCB, 0xCB,
    0xBB, 0xAC, 0x9A, 0x99, 0x01, 0x42, 0x34, 0x12, 0x22, 0x21, 0x01, 0x02, 0x73, 0x44, 0x34, 0x35,
    0x43, 0x34, 0x32, 0x23, 0x63, 0x42, 0x33, 0x24, 0x34, 0x33, 0x32, 0x21, 0x01, 0x88, 0xA9, 0xEB,
    0xCC, 0xBC, 0xBC, 0xBD, 0xBC, 0xBB, 0xCC, 0xBB, 0xBC, 0xCB, 0x9B, 0xAA, 0x89, 0x20, 0x42, 0x23,
    0x81, 0xB0, 0xFD, 0xDB, 0xBC, 0xBB, 0xAC, 0xAB, 0x00, 0x42, 0x43, 0x34, 0x44, 0x12, 0x12, 0x20,
    0x22, 0x43, 0x73, 0x43, 0x44, 0x33, 0x34, 0x24, 0x22, 0x11, 0x00, 0xA9, 0xCC, 0xBB, 0xCB, 0xBB,
    0xAB, 0x9A, 0x09, 0x21, 0x44, 0x14, 0x01, 0x81, 0xFB, 0xDC, 0xCB, 0xBC, 0xBC, 0xAC, 0xAA, 0x9A,
    0x99, 0x88, 0x10, 0x80, 0x80, 0x98, 0xBA, 0xDB, 0x0B, 0x31, 0x55, 0x44, 0x34, 0x44, 0x33, 0x43,
    0x33, 0x32, 0x23, 0x22, 0x12, 0x01, 0x22, 0x33, 0x54, 0x45, 0x53, 0x33, 0x25, 0x24, 0x22, 0x01,
    0x00, 0xA9, 0xDB, 0xDB, 0xBC, 0xBC, 0xAC, 0xCB, 0xBA, 0xBB, 0xBC, 0xDB, 0xBC, 0xBD, 0xAC, 0xBB,
    0xBB, 0x8A, 0x08, 0x32, 0x44, 0x34, 0x25, 0x33, 0x34, 0x32, 0x22, 0x12, 0x01, 0x90, 0x8A, 0x88,
    0x01, 0x63, 0x45, 0x44, 0x33, 0x35, 0x43, 0x32, 0x22, 0x33, 0x34, 0x43, 0x22, 0x01, 0x90, 0xDC,
    0xCC, 0xBC, 0xAC, 0xCB, 0xBA, 0xAA, 0xAB, 0xBB, 0xBA, 0xBA, 0xBD, 0xDB, 0xAB, 0xBC, 0xBB, 0xBC,
    0xCB, 0xBB, 0xCB, 0xBB, 0xAB, 0x89, 0x20, 0x75, 0x44, 0x34, 0x25, 0x34, 0x33, 0x33, 0x32, 0x22,
    0x12, 0x81, 0x11, 0x10, 0x21, 0x43, 0x53, 0x24, 0x22, 0x22, 0x11, 0x98, 0xC9, 0xBF, 0xCD, 0xBC,
    0xCC, 0xBB, 0xAD, 0xAB, 0xBB, 0xBB, 0xAB, 0xBA, 0xBB, 0xBC, 0xCB, 0xCB, 0xBB, 0xAB, 0x89, 0x20,
    0x55, 0x54, 0x43, 0x33, 0x34, 0x24, 0x23, 0x23, 0x23, 0x23, 0x33, 0x44, 0x43, 0x33, 0x34, 0x43,
    0x22, 0x11, 0x00, 0xA8, 0xBA, 0xAD, 0xBB, 0xAC, 0xBC, 0xBD, 0xCB, 0xCC, 0xBB, 0xCC, 0xCA, 0xBA,
    0xCB, 0xBB, 0xBC, 0xBC, 0xBC, 0xBC, 0xBB, 0xCB, 0x9A, 0x08, 0x41, 0x63, 0x53, 0x43, 0x33, 0x24,
    0x33, 0x23, 0x23, 0x32, 0x33, 0x34, 0x43, 0x32, 0x33, 0x22, 0x13, 0x22, 0x11, 0x00, 0xB9, 0xCD,
    0xCC, 0xCD, 0xBC, 0xCC, 0xBC, 0xDB, 0xBB, 0xBB, 0xBC, 0xAB, 0xAB, 0x9A, 0x99, 0x08, 0x11, 0x31,
    0x43, 0x32, 0x12, 0x22, 0x32, 0x34, 0x73, 0x37, 0x53, 0x53, 0x33, 0x35, 0x43, 0x33, 0x24, 0x22,
    0x12, 0x01, 0x80, 0x99, 0x9A, 0x99, 0xA9, 0xCB, 0xDB, 0xEB, 0xBC, 0xBD, 0xCB, 0xBC, 0xBB, 0xAC,
    0xAA, 0xAA, 0x9B, 0xAA, 0xAA, 0xAC, 0xCB, 0xAA, 0xA9, 0x09, 0x32, 0x55, 0x53, 0x43, 0x34, 0x33,
    0x34, 0x33, 0x44, 0x32, 0x34, 0x44, 0x33, 0x34, 0x33, 0x24, 0x22, 0x10, 0x88, 0xAA, 0xCC, 0xBC,
    0xCC, 0xBB, 0xCC, 0xBA, 0xBC, 0xBB, 0xCB, 0xBB, 0xBC, 0xBB, 0xAC, 0xBA, 0x9A, 0x99, 0x10, 0x41,
    0x53, 0x44, 0x33, 0x34, 0x34, 0x33, 0x33, 0x34, 0x43, 0x43, 0x33, 0x34, 0x34, 0x32, 0x23, 0x22,
    0x22, 0x01, 0x00, 0x98, 0xAA, 0xCC, 0xCC, 0xBC, 0xCD, 0xDB, 0xBB, 0xCC, 0xBB, 0xAC, 0xAC, 0xBB,
    0xBB, 0xAC, 0xBB, 0xAB, 0xAA, 0x19, 0x52, 0x54, 0x43, 0x43, 0x34, 0x32, 0x32, 0x33, 0x32, 0x22,
    0x33, 0x33, 0x34, 0x33, 0x24, 0x33, 0x22, 0x11, 0x11, 0x22, 0x33, 0x43, 0x32, 0xA3, 0xFF, 0xBF,
    0xDC, 0xCB, 0xBC, 0xBC, 0xBA, 0xAC, 0xA9, 0x88, 0x00, 0x31, 0x53, 0x33, 0x43, 0x33, 0x33, 0x34,
    0x32, 0x43, 0x23, 0x33, 0x24, 0x32, 0x32, 0x24, 0x42, 0x43, 0x43, 0x33, 0x23, 0x22, 0xA0, 0xFB,
    0xBC, 0xBE, 0xDB, 0xCB, 0xBA, 0xBB, 0xBB, 0xBA, 0xAA, 0xEB, 0xBB, 0xBD, 0xBB, 0xBB, 0x9B, 0x18,
    0x44, 0x44, 0x44, 0x43, 0x33, 0x33, 0x43, 0x33, 0x33, 0x44, 0x33, 0x34, 0x43, 0x43, 0x32, 0x11,
    0x01, 0xB9, 0xCE, 0xEB, 0xBB, 0xBD, 0xCB, 0xAB, 0xBB, 0xBA, 0xAB, 0xBA, 0xBA, 0xBA, 0xAB, 0x9A,
    0x89, 0x30, 0x45, 0x54, 0x43, 0x44, 0x33, 0x35, 0x44, 0x33, 0x43, 0x33, 0x33, 0x23, 0x22, 0x00,
    0xA9, 0xCB, 0xCC, 0xCB, 0xBC, 0xCB, 0xCB, 0xBB, 0xBC, 0xBC, 0xCB, 0xBB, 0xAC, 0xAA, 0x9A, 0x89,
    0x11, 0x53, 0x43, 0x43, 0x43, 0x43, 0x33, 0x34, 0x43, 0x43, 0x32, 0x33, 0x23, 0x22, 0x11, 0x00,
    0x01, 0x08, 0x88, 0x99, 0xC9, 0xCE, 0xCC, 0xCC, 0xBC, 0xCC, 0xBB, 0xBC, 0xBB, 0xCB, 0xAA, 0xA9,
    0xA9, 0x98, 0x00, 0x31, 0x63, 0x44, 0x34, 0x44, 0x33, 0x44, 0x32, 0x22, 0x23, 0x21, 0x01, 0x80,
    0x98, 0xA9, 0xAA, 0xBA, 0xBA, 0xCA, 0xBC, 0xBC, 0xCE, 0xDB, 0xDB, 0xBB, 0xBC, 0xBC, 0xBA, 0xBA,
    0xBB, 0xBA, 0xAA, 0x89, 0x10, 0x42, 0x36, 0x45, 0x53, 0x34, 0x34, 0x34, 0x34, 0x33, 0x23, 0x13,
    0x01, 0x98, 0xDB, 0xDB, 0xDB, 0xBB, 0xAC, 0xCB, 0xAA, 0xAA, 0x99, 0x89, 0x88, 0x00, 0x08, 0x98,
    0x98, 0x99, 0xA9, 0x28, 0x63, 0x44, 0x44, 0x43, 0x43, 0x33, 0x34, 0x34, 0x44, 0x33, 0x34, 0x33,
    0x24, 0x02, 0x90, 0xBA, 0xCE, 0xDB, 0xBB, 0xBC, 0xAC, 0xBB, 0xBB, 0xAB, 0xBB, 0x9A, 0x89, 0x10,
    0x53, 0x44, 0x34, 0x35, 0x33, 0x44, 0x22, 0x23, 0x21, 0x12, 0x21, 0x10, 0x21, 0x23, 0x13, 0xA0,
    0xEB, 0xCC, 0xDB, 0xBC, 0xBB, 0xBC, 0xBB, 0xCB, 0xBA, 0xCB, 0xCB, 0xAC, 0xBC, 0xCB, 0xBB, 0xBB,
    0xAA, 0x0A, 0x43, 0x55, 0x34, 0x35, 0x44, 0x22, 0x23, 0x33, 0x32, 0x12, 0x22, 0x21, 0x01, 0xA9,
    0xCC, 0xCC, 0xBC, 0xCC, 0xBB, 0xAC, 0xBB, 0xAA, 0x9A, 0x89, 0x88, 0x08, 0x01, 0x10, 0x11, 0x73,
    0x43, 0x44, 0x22, 0x23, 0x02, 0xA8, 0xFB, 0xAA, 0xA9, 0x8A, 0x42, 0x64, 0x43, 0x43, 0x33, 0x14,
    0x12, 0x80, 0x98, 0xBA, 0xBD, 0xBB, 0xAC, 0xBB, 0xAC, 0xBB, 0xCB, 0xBB, 0xAC, 0xAB, 0xAB, 0xA9,
    0x88, 0x18, 0x42, 0x35, 0x45, 0x42, 0x23, 0x44, 0x43, 0x43, 0x23, 0x22, 0x00, 0xA8, 0xCC, 0xCC,
    0xCB, 0xBB, 0xCC, 0xCA, 0xBA, 0xBA, 0xAA, 0x89, 0x10, 0x53, 0x34, 0x34, 0x34, 0x33, 0x32, 0x23,
    0x22, 0x11, 0x01, 0x00, 0x98, 0x99, 0x99, 0xA9, 0x99, 0x99, 0x28, 0x67, 0x53, 0x03, 0x90, 0xCA,
    0xCE, 0xCC, 0xBC, 0xBC, 0xBB, 0xAB, 0x8A, 0x20, 0x22, 0x43, 0x43, 0x34, 0x35, 0x53, 0x43, 0x34,
    0x43, 0x23, 0x43, 0x32, 0x32, 0x23, 0x81, 0xBA, 0xED, 0xDB, 0xBC, 0xBB, 0xAC, 0xAA, 0x9A, 0x99,
    0x88, 0x99, 0x99, 0x10, 0x42, 0x44, 0x44, 0x43, 0x34, 0x44, 0x42, 0x22, 0x11, 0x00, 0xA9, 0xDB,
    0xBC, 0xAC, 0xAC, 0xBB, 0xBC, 0xCA, 0xBA, 0xBB, 0xBB, 0x99, 0x18, 0x42, 0x54, 0x53, 0x43, 0x43,
    0x33, 0x34, 0x34, 0x13, 0x02, 0x80, 0x9A, 0xCB, 0xBC, 0xBC, 0xCB, 0xBB, 0xCC, 0xCA, 0xBA, 0xBA,
    0xAB, 0x9A, 0x09, 0x10, 0x10, 0x11, 0x43, 0x34, 0x35, 0x35, 0x35, 0x43, 0x34, 0x43, 0x43, 0x22,
    0x23, 0x12, 0x01, 0x98, 0x98, 0x99, 0xB9, 0xCC, 0xBC, 0xCE, 0xBD, 0xBD, 0xBC, 0xCB, 0xBB, 0xAA,
    0x88, 0x30, 0x45, 0x44, 0x43, 0x33, 0x24, 0x12, 0x01, 0x88, 0xA8, 0xBB, 0x2A, 0x08, 0x28, 0x00,
    0xAA, 0x99, 0xA8, 0x99, 0xAA, 0xEB, 0xDB, 0xCB, 0xBB, 0xCB, 0xBA, 0xBA, 0xBA, 0xBA, 0x9A, 0x99,
    0x42, 0x54, 0x44, 0x45, 0x43, 0x34, 0x34, 0x43, 0x32, 0x32, 0x12, 0x88, 0xCA, 0xCD, 0xBC, 0xBD,
    0xCB, 0xAA, 0xAB, 0x99, 0x08, 0x21, 0x32, 0x34, 0x34, 0x34, 0x33, 0x24, 0x32, 0x22, 0x11, 0x80,
    0x88, 0xAA, 0xBC, 0xAC, 0xBB, 0xBC, 0xCB, 0xCB, 0xAB, 0xBA, 0xAA, 0xCB, 0xCB, 0xCB, 0xBD, 0xBD,
    0xBC, 0xBC, 0xBC, 0x9A, 0x09, 0x30, 0x46, 0x34, 0x35, 0x34, 0x34, 0x23, 0x43, 0x12, 0x12, 0x00,
    0x99, 0xBB, 0xCD, 0xDB, 0xBB, 0xBC, 0xBC, 0xBB, 0xAC, 0xAB, 0x99, 0x99, 0x89, 0x09, 0x31, 0x63,
    0x53, 0x34, 0x44, 0x33, 0x43, 0x33, 0x34, 0x43, 0x33, 0x33, 0x23, 0x13, 0x00, 0xB9, 0xDB, 0xDB,
    0xDB, 0xBD, 0xBD, 0xBC, 0xBC, 0xCB, 0xAB, 0xAB, 0x9B, 0x89, 0x11, 0x44, 0x34, 0x45, 0x23, 0x24,
    0x32, 0x23, 0x32, 0x21, 0x11, 0x80, 0xA9, 0xBA, 0xCC, 0xBB, 0xAC, 0xBB, 0xCC, 0xBA, 0xDB, 0xBB,
    0xBC, 0xBB, 0xAB, 0xAB, 0xBB, 0xBC, 0xAB, 0x8A, 0x08, 0x53, 0x54, 0x53, 0x43, 0x43, 0x24, 0x22,
    0x22, 0x11, 0x80, 0xA8, 0x88, 0x80, 0x11, 0x11, 0x21, 0x63, 0x34, 0x35, 0x13, 0x82, 0xC8, 0xFF,
    0xDB, 0xBB, 0xCC, 0xBA, 0xAB, 0x9A, 0x09, 0x20, 0x43, 0x35, 0x34, 0x34, 0x24, 0x21, 0x11, 0x01,
    0x80, 0x08, 0x33, 0x45, 0x35, 0x44, 0x43, 0x22, 0x11, 0x81, 0xBA, 0xCD, 0xCC, 0xDB, 0xCB, 0xBA,
    0xAC, 0xAB, 0xAA, 0x89, 0x08, 0x21, 0x53, 0x34, 0x34, 0x34, 0x43, 0x22, 0x23, 0x43, 0x32, 0x22,
    0x23, 0x11, 0x01, 0x98, 0x9A, 0xAA, 0xBA, 0xDC, 0xBD, 0xBD, 0xCC, 0xCB, 0xAC, 0xAC, 0xCB, 0xBA,
    0xAC, 0xBB, 0x9B, 0x9A, 0x00, 0x52, 0x53, 0x34, 0x44, 0x33, 0x43, 0x33, 0x33, 0x32, 0x12, 0x11,
    0x11, 0x00, 0x98, 0xB9, 0xCC, 0xCD, 0xCC, 0xBB, 0xBD, 0xBB, 0xBC, 0xBA, 0xAB, 0xBA, 0xAA, 0xAA,
    0x89, 0x10, 0x42, 0x44, 0x53, 0x22, 0x22, 0x21, 0x34, 0x35, 0x44, 0x44, 0x53, 0x32, 0x43, 0x23,
    0x12, 0x81, 0x98, 0xC9, 0xCB, 0xCC, 0xBC, 0xCC, 0xBB, 0xBC, 0xBB, 0xBB, 0xAA, 0x89, 0x32, 0x45,
    0x43, 0x43, 0x33, 0x33, 0x24, 0x33, 0x34, 0x24, 0x43, 0x32, 0x23, 0x00, 0xB9, 0xCD, 0xCC, 0xDB,
    0xAB, 0xAC, 0xAB, 0x9A, 0x89, 0x18, 0x21, 0x44, 0x43, 0x32, 0x33, 0x22, 0x11, 0x90, 0xEB, 0xDB,
    0xBB, 0xBB, 0xAB, 0x9A, 0x00, 0x32, 0x43, 0x44, 0x43, 0x34, 0x34, 0x53, 0x43, 0x43, 0x33, 0x43,
    0x23, 0x00, 0xA8, 0xEC, 0xBC, 0xCD, 0xBA, 0xBB, 0xBB, 0xAC, 0xA9, 0x89, 0x00, 0x21, 0x43, 0x34,
    0x44, 0x43, 0x33, 0x34, 0x43, 0x23, 0x33, 0x22, 0x32, 0x32, 0x24, 0x92, 0xEA, 0xCC, 0xBD, 0xCC,
    0xBB, 0xAC, 0xAB, 0xAA, 0xAB, 0xAA, 0x89, 0x08, 0x22, 0x44, 0x44, 0x53, 0x34, 0x34, 0x34, 0x23,
    0x24, 0x12, 0x12, 0x80, 0x98, 0xBA, 0xCD, 0xCB, 0xCB, 0xAB, 0xAA, 0x99, 0x8A, 0x89, 0xA9, 0xDB,
    0xCB, 0xBC, 0xBC, 0xCB, 0xAB, 0xAB, 0x99, 0x09, 0x21, 0x56, 0x44, 0x44, 0x34, 0x34, 0x34, 0x32,
    0x32, 0x11, 0x81, 0xA9, 0xCB, 0xCC, 0xBC, 0xAC, 0xAC, 0xBB, 0xBA, 0xAB, 0xBB, 0xAB, 0xBA, 0xBB,
    0xBB, 0xAB, 0xAA, 0x09, 0x64, 0x54, 0x34, 0x35, 0x34, 0x34, 0x43, 0x33, 0x34, 0x34, 0x32, 0x23,
    0x12, 0x90, 0xCA, 0xDC, 0xBB, 0xBC, 0xCB, 0xAC, 0xBB, 0xDB, 0xBB, 0xBC, 0xBC, 0xBA, 0xBB, 0x8A,
    0x18, 0x42, 0x46, 0x53, 0x43, 0x43, 0x43, 0x22, 0x32, 0x21, 0x11, 0x80, 0x99, 0xBB, 0xCD, 0xCB,
    0xCB, 0xBC, 0xBB, 0xBC, 0xAC, 0xAA, 0x99, 0x99, 0x00, 0x21, 0x31, 0x33, 0x35, 0x25, 0x24, 0x34,
    0x43, 0x43, 0x32, 0x33, 0x33, 0x33, 0x22, 0x01, 0xA9, 0xDC, 0xBC, 0xCD, 0xBB, 0xBC, 0xCB, 0xBA,
    0xAA, 0x9A, 0xA9, 0x89, 0x99, 0xAA, 0xBA, 0x0A, 0x31, 0x56, 0x45, 0x44, 0x43, 0x43, 0x33, 0x33,
    0x22, 0x11, 0x00, 0x88, 0xAA, 0xCC, 0xBC, 0xCD, 0xBC, 0xCC, 0xAA, 0xAB, 0x99, 0x09, 0x31, 0x53,
    0x33, 0x44, 0x32, 0x32, 0x22, 0x90, 0xC9, 0xBC, 0xBC, 0xDB, 0x99, 0x08, 0x41, 0x53, 0x44, 0x33,
    0x23, 0x33, 0x01, 0xA0, 0xDB, 0xCB, 0xBB, 0xAC, 0xAB, 0x99, 0x89, 0x10, 0x32, 0x81, 0xA0, 0xCA,
    0xCD, 0xBC, 0xBC, 0xBB, 0xCB, 0x89, 0x20, 0x63, 0x43, 0x34, 0x43, 0x32, 0x33, 0x53, 0x32, 0x24,
    0x11, 0x01, 0x99, 0xCA, 0xCB, 0xCB, 0xAA, 0xBB, 0xCC, 0xBB, 0xCC, 0xBC, 0xCC, 0xCB, 0xCB, 0xAC,
    0x9B, 0x8A, 0x18, 0x52, 0x44, 0x53, 0x43, 0x43, 0x33, 0x33, 0x23, 0x12, 0x00, 0xA9, 0xCC, 0xDB,
    0xBB, 0xBC, 0xCC, 0xCB, 0xCB, 0xBB, 0xAC, 0xBB, 0xAA, 0x08, 0x30, 0x54, 0x53, 0x34, 0x34, 0x43,
    0x33, 0x33, 0x24, 0x22, 0x12, 0x80, 0xB9, 0xEB, 0xBC, 0xBC, 0xAD, 0xBB, 0xAC, 0xBB, 0xBA, 0xAA,
    0x89, 0x00, 0x20, 0x43, 0x44, 0x34, 0x44, 0x33, 0x53, 0x32, 0x33, 0x12, 0x80, 0xA9, 0xCB, 0xCC,
    0xBC, 0xBA, 0xAB, 0xBA, 0xBA, 0xBB, 0xBB, 0xAC, 0xBB, 0xAB, 0x88, 0x98, 0xB8, 0xAC, 0x9A, 0x31,
    0x77, 0x44, 0x44, 0x32, 0x32, 0x32, 0x22, 0x12, 0x11, 0x01, 0x80, 0xA9, 0xDC, 0xCC, 0xCD, 0xCB,
    0xBC, 0xBC, 0xCB, 0xAA, 0x99, 0x10, 0x32, 0x45, 0x24, 0x22, 0x12, 0x12, 0x01, 0x80, 0x11, 0x33,
    0x34, 0x34, 0x23, 0x34, 0x34, 0x34, 0x13, 0x81, 0xD9, 0xCE, 0xCC, 0xBB, 0xBA, 0xAA, 0x08, 0x41,
    0x34, 0x33, 0x44, 0x23, 0x43, 0x22, 0x81, 0xB9, 0xBE, 0xCB, 0xBB, 0x9C, 0x08, 0x31, 0x54, 0x44,
    0x34, 0x43, 0x43, 0x12, 0x01, 0xA9, 0xCC, 0xCC, 0xBC, 0xBB, 0xBB, 0xAB, 0x88, 0x21, 0x44, 0x34,
    0x35, 0x43, 0x32, 0x22, 0x01, 0x98, 0xBB, 0xCC, 0xCB, 0xAA, 0x9A, 0x89, 0x99, 0x88, 0xB9, 0xDC,
    0xDB, 0xDB, 0xBA, 0xBC, 0xBA, 0xAA, 0x09, 0x31, 0x45, 0x35, 0x35, 0x34, 0x32, 0x33, 0x12, 0x81,
    0xA8, 0xCC, 0xCC, 0xBC, 0xBA, 0xBB, 0x9B, 0x09, 0x31, 0x24, 0x34, 0x43, 0x12, 0x11, 0x18, 0x11,
    0x33, 0x24, 0x22, 0x02, 0xA8, 0xCE, 0xCC, 0xBC, 0xDB, 0xBB, 0xBC, 0xBB, 0x99, 0x20, 0x53, 0x44,
    0x44, 0x23, 0x22, 0x22, 0x90, 0xCB, 0xCD, 0xBB, 0xBD, 0x8A, 0x10, 0x63, 0x44, 0x44, 0x33, 0x43,
    0x22, 0x11, 0xA8, 0xDA, 0xCB, 0xCB, 0xBB, 0xBB, 0xBB, 0x9A, 0x9A, 0x08, 0x10, 0x31, 0x53, 0x53,
    0x33, 0x24, 0x22, 0x00, 0xA8, 0xCA, 0xBC, 0x99, 0x10, 0x11, 0x11, 0x00, 0xFB, 0xCD, 0xCC, 0xBB,
    0xBC, 0xAB, 0x9A, 0x08, 0x41, 0x44, 0x35, 0x44, 0x33, 0x34, 0x43, 0x22, 0x12, 0x81, 0x98, 0xDB,
    0xCC, 0xCB, 0xBC, 0xCB, 0xAA, 0x9A, 0x89, 0x10, 0x21, 0x24, 0x12, 0x11, 0x10, 0x11, 0x21, 0x45,
    0x35, 0x25, 0x23, 0x21, 0x81, 0xAA, 0xCD, 0xDB, 0xCB, 0xCB, 0xCB, 0xBA, 0x9C, 0x99, 0x08, 0x42,
    0x54, 0x34, 0x34, 0x34, 0x43, 0x22, 0x23, 0x11, 0x80, 0xA8, 0xA9, 0xBA, 0xBC, 0xBB, 0xBC, 0xCD,
    0xBC, 0xBD, 0xBB, 0xAC, 0xBB, 0x99, 0x08, 0x21, 0x42, 0x34, 0x32, 0x23, 0x33, 0x22, 0x11, 0x11,
    0x01, 0x00, 0x44, 0x36, 0x45, 0x45, 0x43, 0x33, 0x33, 0x23, 0xA0, 0xDC, 0xCD, 0xBC, 0xCC, 0xBB,
    0xBA, 0xAA, 0x88, 0x21, 0x35, 0x35, 0x34, 0x43, 0x22, 0x22, 0x01, 0x90, 0xA9, 0xBB, 0xCC, 0xBB,
    0xCB, 0xAB, 0xBB, 0xAC, 0x9A, 0xAA, 0x99, 0x88, 0x10, 0x32, 0x33, 0x23, 0x20, 0xF3, 0x1E, 0x00,
    0x33, 0x43, 0x32, 0x47, 0x53, 0x63, 0x35, 0x35, 0x34, 0x34, 0x43, 0x12, 0x11, 0x98, 0xDB, 0xBD,
    0xAD, 0xAC, 0xBB, 0xBA, 0x9A, 0x89, 0x18, 0x22, 0x34, 0x34, 0x33, 0x34, 0x33, 0x43, 0x22, 0x22,
    0x01, 0xCA, 0xCC, 0xBB, 0xBB, 0x9B, 0x52, 0x55, 0x43, 0x33, 0x34, 0x11, 0x80, 0xCA, 0xCC, 0xDB,
    0xBB, 0xAC, 0xAB, 0x9A, 0x99, 0x10, 0x20, 0x31, 0x43, 0x43, 0x24, 0x33, 0x43, 0x22, 0x12, 0x01,
    0x80, 0xBA, 0xCC, 0xCF, 0xBD, 0xCC, 0xBB, 0xBB, 0xAB, 0x09, 0x41, 0x54, 0x35, 0x44, 0x33, 0x43,
    0x23, 0x12, 0x81, 0xA9, 0xCB, 0xCD, 0xBA, 0xCB, 0xBA, 0xAB, 0xBB, 0xBA, 0xBA, 0xAA, 0x88, 0x31,
    0x64, 0x44, 0x34, 0x34, 0x33, 0x23, 0x22, 0x80, 0xA9, 0xB9, 0xDB, 0x9A, 0x99, 0x18, 0x31, 0x53,
    0x44, 0x33, 0x34, 0x23, 0x01, 0x99, 0xCE, 0xCD, 0xCB, 0xBB, 0xAC, 0xBB, 0x9A, 0x9A, 0x89, 0x99,
    0x88, 0x08, 0x00, 0x52, 0x55, 0x53, 0x53, 0x34, 0x34, 0x43, 0x33, 0x23, 0x22, 0x00, 0xBA, 0xCE,
    0xBD, 0xCB, 0xBB, 0xBC, 0x9A, 0x8A, 0x89, 0x00, 0x21, 0x11, 0x22, 0x12, 0x12, 0x12, 0x32, 0x36,
    0x34, 0x33, 0x23, 0x13, 0x11, 0x81, 0x51, 0x54, 0x53, 0x34, 0x35, 0x43, 0x22, 0x12, 0x00, 0x98,
    0xBB, 0xBE, 0xBD, 0xBC, 0xCB, 0xAC, 0xCB, 0xCB, 0xBB, 0xBB, 0xAB, 0x9B, 0x09, 0x32, 0x36, 0x45,
    0x53, 0x33, 0x44, 0x33, 0x33, 0x34, 0x22, 0x22, 0x01, 0x98, 0xCA, 0xCC, 0xDB, 0xBB, 0xBC, 0xBA,
    0xAA, 0xBA, 0xBB, 0xDB, 0xCC, 0xCB, 0xCB, 0xAA, 0xAB, 0x09, 0x21, 0x54, 0x53, 0x34, 0x34, 0x43,
    0x33, 0x24, 0x22, 0x11, 0x01, 0x88, 0xBA, 0xEB, 0xCB, 0xCB, 0xBC, 0xBB, 0xAD, 0xCB, 0xAA, 0xAB,
    0xAA, 0x09, 0x32, 0x46, 0x34, 0x44, 0x32, 0x22, 0x11, 0x80, 0xA8, 0xAA, 0xAB, 0xAA, 0x89, 0x21,
    0x44, 0x34, 0x33, 0x24, 0x00, 0xA9, 0xBD, 0xCC, 0xCB, 0xAB, 0xAA, 0xA9, 0xAA, 0xBB, 0xEB, 0xBB,
    0xBC, 0xAB, 0x9A, 0x18, 0x56, 0x54, 0x53, 0x43, 0x43, 0x32, 0x22, 0x11, 0x00, 0xB9, 0xCB, 0xCB,
    0xCA, 0xCA, 0xCB, 0xBB, 0xAD, 0xCB, 0xBA, 0xAA, 0xA9, 0x89, 0x08, 0x20, 0x31, 0x43, 0x44, 0x45,
    0x43, 0x34, 0x34, 0x34, 0x43, 0x32, 0x22, 0x02, 0x81, 0xA9, 0xCD, 0xCC, 0xBC, 0xBD, 0xCB, 0xBB,
    0xAC, 0xAB, 0x9A, 0x88, 0x21, 0x54, 0x34, 0x34, 0x44, 0x32, 0x33, 0x32, 0x33, 0x22, 0x12, 0x90,
    0xA9, 0xCD, 0xCC, 0xBC, 0xBC, 0xBC, 0xCB, 0xBA, 0xAA, 0x8A, 0x08, 0x31, 0x34, 0x34, 0x34, 0x22,
    0x12, 0x21, 0x33, 0x35, 0x54, 0x33, 0x25, 0x23, 0x12, 0x11, 0x88, 0xBA, 0xCB, 0xDB, 0xCB, 0xBC,
    0xBD, 0xBC, 0xCC, 0xCA, 0xAA, 0xAA, 0x99, 0x09, 0x20, 0x33, 0x45, 0x43, 0x34, 0x43, 0x33, 0x34,
    0x33, 0x24, 0x22, 0x12, 0x90, 0xCA, 0xCC, 0xCC, 0xBC, 0xCB, 0xCB, 0xBA, 0xAB, 0xAA, 0x89, 0x18,
    0x33, 0x36, 0x43, 0x34, 0x33, 0x24, 0x33, 0x43, 0x32, 0x33, 0x34, 0x33, 0x13, 0x01, 0xB9, 0xDF,
    0xDB, 0xBC, 0xBC, 0xBC, 0xAC, 0xAA, 0xAA, 0x88, 0x10, 0x43, 0x54, 0x43, 0x43, 0x33, 0x34, 0x32,
    0x23, 0x12, 0x81, 0xA8, 0xCC, 0xCC, 0xBC, 0xBC, 0xBC, 0xBB, 0xBA, 0xAA, 0x89, 0x00, 0x32, 0x44,
    0x34, 0x34, 0x34, 0x33, 0x34, 0x23, 0x33, 0x33, 0x22, 0x02, 0xA9, 0xCD, 0xDC, 0xCB, 0xBC, 0xCB,
    0xBA, 0xBB, 0xBA, 0x9A, 0x99, 0x10, 0x41, 0x44, 0x35, 0x44, 0x33, 0x35, 0x32, 0x23, 0x13, 0x81,
    0xAA, 0xCD, 0xDB, 0xCB, 0xBB, 0xAC, 0xBA, 0x9A, 0x99, 0x80, 0x22, 0x53, 0x53, 0x43, 0x33, 0x24,
    0x32, 0x22, 0x12, 0x11, 0x01, 0x01, 0x10, 0x08, 0x98, 0xD9, 0xCE, 0xBC, 0xCD, 0xCB, 0xCB, 0xAB,
    0xBB, 0xAA, 0x09, 0x20, 0x53, 0x44, 0x34, 0x34, 0x43, 0x23, 0x33, 0x22, 0x11, 0x88, 0xB9, 0xBD,
    0xCD, 0xCB, 0xDB, 0xBB, 0xAC, 0xAB, 0xAB, 0x89, 0x10, 0x63, 0x53, 0x53, 0x23, 0x33, 0x33, 0x22,
    0x01, 0x99, 0xBC, 0xCD, 0xCB, 0xBB, 0xBB, 0x9A, 0x08, 0x20, 0x22, 0x34, 0x24, 0x33, 0x33, 0x34,
    0x32, 0x33, 0x24, 0x23, 0x23, 0x24, 0x22, 0x90, 0xDA, 0xDD, 0xCC, 0xCC, 0xBB, 0xCB, 0xBA, 0x89,
    0x28, 0x43, 0x44, 0x53, 0x33, 0x32, 0x33, 0x12, 0x81, 0xA9, 0xCD, 0xBC, 0xBC, 0xAC, 0xAB, 0x99,
    0x18, 0x31, 0x53, 0x43, 0x23, 0x12, 0x80, 0x99, 0xDB, 0xBB, 0xAC, 0xBB, 0xAA, 0x9A, 0x08, 0x62,
    0x44, 0x53, 0x33, 0x53, 0x11, 0x98, 0xBA, 0xBE, 0xBD, 0xAC, 0x9A, 0x89, 0x21, 0x63, 0x34, 0x43,
    0x33, 0x33, 0x11, 0x98, 0xBB, 0xCC, 0xBC, 0xBB, 0xAB, 0xDB, 0xCB, 0xCB, 0x9A, 0x08, 0x41, 0x54,
    0x34, 0x35, 0x33, 0x32, 0x13, 0x80, 0xCA, 0xCD, 0xBC, 0xBC, 0xAB, 0x9A, 0x09, 0x32, 0x36, 0x34,
    0x24, 0x33, 0x11, 0x80, 0xBA, 0xDC, 0xCB, 0xBC, 0xBB, 0xAC, 0x99, 0x18, 0x31, 0x35, 0x35, 0x33,
    0x23, 0x11, 0x90, 0xC9, 0xCB, 0xBC, 0xBC, 0xAA, 0x99, 0x20, 0x44, 0x54, 0x32, 0x21, 0x01, 0x98,
    0xBB, 0xBE, 0xBB, 0xCB, 0xAA, 0x99, 0x00, 0x21, 0x43, 0x54, 0x43, 0x43, 0x23, 0x23, 0x11, 0xA9,
    0xDC, 0xBC, 0xBC, 0xBC, 0xBA, 0x99, 0x00, 0x32, 0x45, 0x34, 0x34, 0x43, 0x23, 0x12, 0x01, 0x99,
    0xDB, 0xCB, 0xAB, 0xAC, 0xBC, 0xBD, 0xBC, 0xAC, 0xAB, 0x8A, 0x30, 0x45, 0x34, 0x35, 0x33, 0x23,
    0x12, 0x88, 0xCA, 0xCC, 0xBB, 0xBB, 0xAC, 0x89, 0x18, 0x11, 0x10, 0x88, 0xA8, 0xBA, 0xBD, 0x99,
    0x00, 0x23, 0x32, 0x53, 0x43, 0x43, 0x43, 0x34, 0x34, 0x44, 0x44, 0x34, 0x43, 0x32, 0x22, 0x90,
    0xDA, 0xDC, 0xDB, 0xCB, 0xCB, 0xBA, 0xAB, 0x99, 0x00, 0x53, 0x45, 0x34, 0x34, 0x24, 0x33, 0x11,
    0x90, 0xB9, 0xCC, 0xDB, 0xBB, 0xBB, 0xAB, 0xBB, 0x9A, 0x89, 0x20, 0x43, 0x44, 0x34, 0x43, 0x32,
    0x22, 0x01, 0x80, 0xBA, 0xAB, 0xBB, 0xAB, 0x9A, 0x09, 0x90, 0xBA, 0xCD, 0x9A, 0x08, 0x41, 0x56,
    0x53, 0x33, 0x12, 0x81, 0xFB, 0xCC, 0xDB, 0xBA, 0xBB, 0x8A, 0x28, 0x44, 0x44, 0x43, 0x33, 0x12,
    0x80, 0x99, 0xCB, 0xCB, 0x9A, 0x10, 0x52, 0x53, 0x43, 0x23, 0x01, 0x98, 0xDB, 0xBC, 0xBD, 0xCB,
    0xAB, 0xAA, 0x08, 0x30, 0x43, 0x34, 0x34, 0x33, 0x32, 0x22, 0x21, 0x10, 0xA8, 0xCA, 0xBC, 0xBB,
    0xAA, 0xAA, 0xA9, 0xA9, 0xEF, 0xDB, 0xCC, 0xBB, 0xCC, 0xAA, 0x99, 0x08, 0x42, 0x44, 0x44, 0x53,
    0x33, 0x33, 0x23, 0x81, 0xB8, 0xCD, 0xCC, 0xBB, 0xBB, 0x9C, 0x8A, 0x08, 0x31, 0x63, 0x43, 0x43,
    0x33, 0x22, 0x01, 0xA8, 0xBA, 0xBD, 0xBC, 0xBC, 0xBB, 0xAA, 0x89, 0x21, 0x46, 0x35, 0x35, 0x32,
    0x33, 0x01, 0xA9, 0xBE, 0xBD, 0xBD, 0xCB, 0xBA, 0xAA, 0x9A, 0x10, 0x42, 0x35, 0x35, 0x34, 0x33,
    0x32, 0x12, 0x80, 0xBA, 0xCB, 0xBC, 0xBC, 0xBA, 0xAB, 0xAA, 0xBB, 0xBB, 0xBF, 0xCC, 0xAB, 0x9A,
    0x09, 0x73, 0x44, 0x44, 0x43, 0x33, 0x23, 0x12, 0x90, 0xBA, 0xBF, 0xCC, 0xAB, 0xBB, 0xBB, 0x99,
    0x08, 0x31, 0x44, 0x44, 0x33, 0x34, 0x24, 0x12, 0x02, 0x80, 0xAA, 0xCC, 0xBB, 0xBC, 0xBB, 0xBA,
    0xAA, 0xAA, 0xA9, 0x89, 0x99, 0x88, 0x18, 0x32, 0x44, 0x46, 0x44, 0x34, 0x44, 0x33, 0x14, 0x11,
    0x98, 0xBA, 0xBD, 0xBD, 0xBA, 0xBB, 0xBB, 0xAB, 0xAB, 0xBB, 0xAC, 0x9B, 0x28, 0x63, 0x55, 0x44,
    0x43, 0x43, 0x32, 0x22, 0x00, 0xA9, 0xCB, 0xBC, 0xBC, 0xBA, 0xAA, 0x89, 0xF2, 0xFB, 0x2F, 0x00,
    0x10, 0x42, 0x22, 0x23, 0x13, 0x90, 0xDA, 0xDB, 0xCB, 0xCB, 0xBB, 0xBA, 0xAA, 0x99, 0x08, 0x10,
    0x10, 0x51, 0x46, 0x44, 0x44, 0x43, 0x33, 0x33, 0x23, 0x01, 0xB9, 0xCC, 0xCD, 0xBC, 0xBC, 0xCB,
    0xAB, 0xAB, 0x99, 0x09, 0x21, 0x42, 0x43, 0x44, 0x33, 0x44, 0x33, 0x34, 0x24, 0x32, 0x12, 0x01,
    0xA8, 0xDB, 0xDC, 0xCB, 0xBC, 0xBC, 0xCB, 0xAA, 0x99, 0x18, 0x31, 0x45, 0x33, 0x34, 0x33, 0x24,
    0x21, 0x11, 0x80, 0x98, 0xBA, 0xBD, 0xBD, 0xAC, 0xAB, 0xAB, 0xBB, 0xBB, 0x9A, 0x18, 0x42, 0x55,
    0x34, 0x34, 0x32, 0x11, 0x90, 0xDA, 0xCC, 0xCB, 0xCB, 0xAB, 0x9A, 0x00, 0x42, 0x44, 0x44, 0x22,
    0x23, 0x12, 0x01, 0x80, 0x99, 0x99, 0xB9, 0xCB, 0xCB, 0xCB, 0xBB, 0xBC, 0xCC, 0xBC, 0xBC, 0x9A,
    0x99, 0x31, 0x47, 0x44, 0x32, 0x23, 0x22, 0x80, 0xB9, 0xBD, 0xBD, 0xCB, 0xAB, 0x99, 0x08, 0x42,
    0x44, 0x24, 0x23, 0x13, 0x02, 0x80, 0xAA, 0xCB, 0xDB, 0xBB, 0xBD, 0xCB, 0xBA, 0xA9, 0x09, 0x31,
    0x54, 0x53, 0x33, 0x34, 0x33, 0x23, 0x12, 0x98, 0xCB, 0xCC, 0xCB, 0xBB, 0xAA, 0x89, 0x10, 0x21,
    0x43, 0x33, 0x33, 0x42, 0x34, 0x35, 0x24, 0x33, 0x32, 0x11, 0xA9, 0xBD, 0xBC, 0xBB, 0xCB, 0xAC,
    0xAC, 0xBB, 0xBB, 0x9C, 0x42, 0x46, 0x44, 0x42, 0x32, 0x12, 0x80, 0xC9, 0xCB, 0xCC, 0xBB, 0xBC,
    0xBA, 0x9A, 0x18, 0x42, 0x44, 0x43, 0x43, 0x43, 0x33, 0x33, 0x24, 0x12, 0x88, 0xCA, 0xDC, 0xCC,
    0xBC, 0xBB, 0xAC, 0xAA, 0x88, 0x31, 0x35, 0x45, 0x33, 0x24, 0x23, 0x21, 0x80, 0xA8, 0xBB, 0xBC,
    0xCB, 0xBB, 0xAC, 0xAB, 0xBB, 0xBB, 0x8A, 0x21, 0x44, 0x44, 0x43, 0x33, 0x22, 0x00, 0xB9, 0xCE,
    0xCB, 0xBB, 0xAC, 0x9A, 0x88, 0x10, 0x42, 0x44, 0x53, 0x43, 0x43, 0x32, 0x12, 0x01, 0xCA, 0xCD,
    0xCC, 0xAC, 0xAC, 0xAB, 0x9A, 0x08, 0x32, 0x45, 0x34, 0x34, 0x34, 0x22, 0x12, 0x81, 0x98, 0xCB,
    0xBC, 0xBD, 0xBB, 0xAC, 0xBB, 0xAA, 0x89, 0x20, 0x52, 0x34, 0x35, 0x33, 0x12, 0x01, 0x98, 0xB9,
    0x9B, 0x09, 0x31, 0x23, 0x90, 0xBA, 0xBE, 0xCC, 0xAC, 0x9A, 0x89, 0x88, 0xA9, 0xCB, 0xDF, 0xBC,
    0xBD, 0xCB, 0xBB, 0x89, 0x30, 0x54, 0x44, 0x34, 0x24, 0x22, 0x12, 0x80, 0x98, 0xCA, 0xCB, 0xCB,
    0xBB, 0xCB, 0xAB, 0xAB, 0x99, 0x88, 0x08, 0x01, 0x51, 0x63, 0x43, 0x43, 0x33, 0x33, 0x43, 0x22,
    0x21, 0x11, 0x11, 0xEB, 0xDC, 0xCC, 0xBC, 0xBC, 0xAC, 0x99, 0x08, 0x10, 0x32, 0x34, 0x34, 0x43,
    0x42, 0x33, 0x33, 0x33, 0x12, 0xB1, 0xDE, 0xCC, 0xAC, 0xBB, 0xAA, 0x89, 0x28, 0x32, 0x42, 0x22,
    0x43, 0x43, 0x33, 0x43, 0x22, 0x12, 0xC9, 0xCC, 0xCD, 0xCB, 0xBB, 0x89, 0x21, 0x54, 0x44, 0x43,
    0x33, 0x22, 0x02, 0xA8, 0xBD, 0xCD, 0xBA, 0xAC, 0xAA, 0x99, 0x08, 0x20, 0x42, 0x43, 0x43, 0x33,
    0x22, 0x88, 0xBB, 0xCC, 0xBC, 0xAB, 0x8A, 0x11, 0x44, 0x44, 0x43, 0x32, 0x33, 0x23, 0x00, 0xB8,
    0xDC, 0xCC, 0xCB, 0xAB, 0xAB, 0xAA, 0x89, 0x20, 0x32, 0x36, 0x34, 0x34, 0x43, 0x01, 0xA8, 0xBC,
    0xBC, 0xBA, 0x8A, 0x62, 0x44, 0x24, 0x33, 0x33, 0x01, 0xA9, 0xCC, 0xCB, 0xAC, 0xAA, 0x8A, 0x88,
    0x98, 0xA9, 0xBA, 0xCB, 0xAC, 0x09, 0x21, 0x64, 0x63, 0x33, 0x34, 0x22, 0x12, 0x11, 0x00, 0x80,
    0x00, 0x00, 0xB8, 0xEB, 0xCC, 0xCC, 0xCB, 0xCB, 0xAA, 0x9A, 0x09, 0x18, 0x22, 0x11, 0x01, 0x61,
    0x45, 0x44, 0x43, 0x43, 0x22, 0x01, 0x98, 0xCC, 0xBD, 0xBD, 0xAB, 0xAA, 0x88, 0x21, 0x44, 0x34,
    0x43, 0x43, 0x22, 0x21, 0x00, 0xA9, 0xBD, 0xCD, 0xBB, 0xAD, 0xBB, 0xAB, 0x9A, 0x08, 0x32, 0x55,
    0x44, 0x43, 0x33, 0x33, 0x13, 0x81, 0xBA, 0xDC, 0xCB, 0xAC, 0xAB, 0xA9, 0x88, 0x00, 0x22, 0x12,
    0x81, 0x98, 0x98, 0x9A, 0x19, 0x62, 0x34, 0x35, 0x33, 0x34, 0x35, 0x34, 0x34, 0x34, 0x23, 0x01,
    0xB9, 0xDE, 0xCC, 0xDB, 0xBB, 0xAB, 0xAB, 0x89, 0x20, 0x53, 0x43, 0x43, 0x33, 0x33, 0x32, 0x32,
    0x33, 0x23, 0x12, 0x80, 0xEB, 0xDC, 0xBC, 0xCB, 0xBB, 0x9B, 0x89, 0x31, 0x33, 0x34, 0x24, 0x81,
    0xB8, 0xAC, 0xAA, 0x08, 0x21, 0x54, 0x43, 0x32, 0x12, 0x21, 0x32, 0x34, 0x34, 0x24, 0x01, 0xEC,
    0xCC, 0xDC, 0xCB, 0xCB, 0xAA, 0x99, 0x28, 0x63, 0x63, 0x32, 0x33, 0x23, 0x12, 0x80, 0xAA, 0xCC,
    0xBC, 0xBC, 0xAC, 0xAB, 0x99, 0x00, 0x32, 0x43, 0x33, 0x13, 0x91, 0xAA, 0xBA, 0xAA, 0x89, 0x21,
    0x53, 0x81, 0xDA, 0xCC, 0xCB, 0xCB, 0x19, 0x64, 0x54, 0x63, 0x33, 0x34, 0x12, 0x80, 0xDA, 0xCD,
    0xBC, 0xCB, 0xBB, 0xAB, 0x99, 0x10, 0x44, 0x35, 0x35, 0x24, 0x23, 0x13, 0x81, 0xB8, 0xDB, 0xCC,
    0xBB, 0xCB, 0xBB, 0xAA, 0x89, 0x20, 0x43, 0x45, 0x43, 0x33, 0x23, 0x13, 0x11, 0x99, 0xCB, 0xCC,
    0xAC, 0xBB, 0xBB, 0xAB, 0x89, 0x10, 0x33, 0x35, 0x35, 0x43, 0x33, 0x43, 0x23, 0x33, 0x11, 0x98,
    0xDB, 0xCD, 0xDB, 0xBB, 0xBC, 0xCB, 0xAA, 0x99, 0x08, 0x21, 0x44, 0x34, 0x34, 0x34, 0x32, 0x23,
    0x22, 0x12, 0x00, 0xA9, 0xDB, 0xDB, 0xBC, 0xBC, 0xBB, 0xAB, 0xAB, 0xBA, 0xBA, 0xBB, 0xAA, 0x89,
    0x73, 0x47, 0x34, 0x34, 0x43, 0x23, 0x13, 0x01, 0xA8, 0xDA, 0xBC, 0xBC, 0xCB, 0xAB, 0xAB, 0x9A,
    0x89, 0x00, 0x22, 0x22, 0x23, 0x43, 0x43, 0x43, 0x44, 0x34, 0x34, 0x24, 0x23, 0x12, 0x02, 0x80,
    0xDC, 0xDC, 0xDB, 0xBB, 0xCB, 0xAA, 0x9A, 0x08, 0x31, 0x45, 0x34, 0x44, 0x33, 0x23, 0x13, 0x02,
    0xA9, 0xCC, 0xBC, 0xBC, 0xBB, 0xAB, 0x99, 0x10, 0x20, 0x32, 0x33, 0x43, 0x23, 0x13, 0x01, 0xB8,
    0xEF, 0xBC, 0xAD, 0xAB, 0x9B, 0x20, 0x55, 0x44, 0x53, 0x32, 0x33, 0x22, 0x11, 0xA9, 0xDC, 0xCC,
    0xBC, 0xCC, 0xBA, 0xBA, 0x9A, 0x18, 0x42, 0x35, 0x45, 0x33, 0x43, 0x12, 0x02, 0x80, 0xBA, 0xCC,
    0xBC, 0xBC, 0xCB, 0xAA, 0x9A, 0x09, 0x10, 0x43, 0x44, 0x34, 0x42, 0x22, 0x12, 0x11, 0x88, 0xAA,
    0xCB, 0xBC, 0xBC, 0xCB, 0xAB, 0xAB, 0x99, 0x88, 0x11, 0x43, 0x44, 0x33, 0x34, 0x33, 0x24, 0x11,
    0x80, 0xB8, 0xDB, 0xBC, 0xAC, 0xAA, 0x8A, 0x08, 0x31, 0x34, 0x35, 0x53, 0x12, 0x80, 0xBA, 0xBD,
    0xCC, 0xAB, 0x09, 0x20, 0x22, 0x33, 0x32, 0x23, 0x33, 0x32, 0x35, 0x43, 0x01, 0xB8, 0xBD, 0xAA,
    0x9A, 0x08, 0x10, 0x12, 0xFB, 0xDF, 0xCB, 0xBA, 0xAA, 0x8A, 0x08, 0x32, 0x55, 0x53, 0x33, 0x35,
    0x34, 0x22, 0x00, 0xB8, 0xDC, 0xCC, 0xAC, 0xAB, 0x9A, 0x09, 0x31, 0x44, 0x34, 0x33, 0x33, 0x22,
    0x00, 0xA8, 0xDB, 0xBC, 0xCB, 0xBB, 0xAB, 0x9A, 0x08, 0x08, 0x80, 0x20, 0x47, 0x63, 0x53, 0x43,
    0x43, 0x12, 0x80, 0xB9, 0xCD, 0xCC, 0xBB, 0xBC, 0xAB, 0x8A, 0x28, 0x63, 0x54, 0x43, 0x33, 0x32,
    0x02, 0xA0, 0xCC, 0xBC, 0xBC, 0xAC, 0x9B, 0x8A, 0x08, 0x31, 0x44, 0x34, 0x34, 0x34, 0x32, 0x01,
    0x90, 0xCC, 0xDC, 0xBA, 0xBB, 0xAA, 0x89, 0x20, 0x34, 0x35, 0x25, 0x33, 0x22, 0x12, 0x98, 0xCA,
    0xBC, 0xAC, 0xAB, 0xAB, 0x99, 0x09, 0x08, 0x11, 0x32, 0x44, 0x42, 0x32, 0x22, 0x01, 0xCA, 0xDC,
    0xBC, 0xAC, 0xBB, 0x99, 0x11, 0x54, 0x34, 0x35, 0x34, 0x33, 0x24, 0x11, 0x90, 0xD9, 0xBD, 0xCD,
    0xBB, 0xBC, 0xBA, 0x9A, 0x08, 0x31, 0x45, 0x34, 0x35, 0x33, 0x24, 0x23, 0x8E, 0x3F, 0x3D, 0x00,
    0x81, 0xA8, 0xDB, 0xBC, 0xAD, 0xAC, 0xBA, 0x9A, 0x99, 0x00, 0x32, 0x44, 0x44, 0x33, 0x24, 0x22,
    0x11, 0x00, 0x99, 0xCA, 0xDB, 0xBB, 0xBC, 0xCB, 0xBA, 0xBA, 0x9A, 0x09, 0x20, 0x63, 0x55, 0x53,
    0x33, 0x24, 0x23, 0x02, 0x98, 0xCB, 0xCC, 0xCB, 0xAC, 0xBB, 0xBB, 0xAA, 0x89, 0x30, 0x64, 0x53,
    0x43, 0x33, 0x34, 0x12, 0x00, 0xB8, 0xCC, 0xBD, 0xAC, 0xAC, 0xAA, 0x99, 0x00, 0x21, 0x44, 0x43,
    0x24, 0x33, 0x23, 0x12, 0x80, 0xB9, 0xCC, 0xBC, 0xAC, 0xAB, 0xBA, 0xA9, 0x89, 0x18, 0x32, 0x34,
    0x25, 0x43, 0x12, 0x01, 0x90, 0x88, 0x88, 0x00, 0x12, 0x32, 0x33, 0x34, 0x43, 0x43, 0x33, 0x13,
    0xDC, 0xDD, 0xCC, 0xBC, 0xBC, 0xBB, 0xBB, 0x9A, 0x89, 0x31, 0x65, 0x53, 0x53, 0x33, 0x34, 0x32,
    0x22, 0x01, 0x98, 0xCA, 0xDB, 0xCC, 0xBC, 0xBC, 0xCC, 0xBA, 0x9A, 0x09, 0x20, 0x44, 0x35, 0x34,
    0x34, 0x33, 0x23, 0x11, 0x98, 0xBC, 0xCD, 0xCB, 0xAC, 0xAB, 0xAA, 0x8A, 0x18, 0x32, 0x45, 0x34,
    0x43, 0x33, 0x33, 0x12, 0xA0, 0xDB, 0xBD, 0xBD, 0xBC, 0xAC, 0x9A, 0x88, 0x21, 0x54, 0x43, 0x24,
    0x33, 0x23, 0x02, 0x98, 0xCB, 0xCD, 0xCB, 0xBA, 0xBB, 0x9A, 0x09, 0x21, 0x34, 0x35, 0x33, 0x24,
    0x22, 0x11, 0x01, 0x80, 0xA9, 0xCA, 0xDB, 0xCC, 0xCB, 0xBA, 0x9A, 0x89, 0x31, 0x45, 0x34, 0x33,
    0x24, 0x01, 0x90, 0xB9, 0xCC, 0xCB, 0xBB, 0xCB, 0xAA, 0x8A, 0x20, 0x53, 0x44, 0x34, 0x33, 0x23,
    0x12, 0x90, 0xCB, 0xCC, 0xCB, 0xBB, 0xBB, 0x9B, 0x8A, 0x11, 0x44, 0x53, 0x33, 0x43, 0x12, 0x81,
    0xB8, 0xCB, 0xBD, 0xBB, 0xBB, 0x99, 0x41, 0x45, 0x34, 0x34, 0x32, 0x02, 0xA8, 0xCD, 0xBC, 0xBD,
    0xBB, 0xBA, 0x9A, 0x10, 0x53, 0x45, 0x43, 0x33, 0x24, 0x23, 0x11, 0x98, 0xCB, 0xBD, 0xCD, 0xBB,
    0xBC, 0xBA, 0x8A, 0x28, 0x44, 0x54, 0x33, 0x34, 0x23, 0x12, 0x98, 0xCA, 0xCC, 0xBB, 0xBC, 0xBB,
    0x9A, 0x89, 0x11, 0x33, 0x35, 0x34, 0x33, 0x33, 0x33, 0x33, 0x33, 0x22, 0x01, 0xC9, 0xCD, 0xCC,
    0xCC, 0xCB, 0xBB, 0xBB, 0xBA, 0x18, 0x42, 0x36, 0x44, 0x33, 0x23, 0x22, 0x80, 0xA9, 0xCC, 0xCB,
    0xBB, 0xBB, 0x9A, 0x18, 0x42, 0x44, 0x34, 0x33, 0x11, 0x90, 0xDA, 0xCC, 0xCB, 0xBA, 0x9A, 0x88,
    0x10, 0x32, 0x45, 0x34, 0x33, 0x35, 0x32, 0x23, 0x01, 0x98, 0xDB, 0xCC, 0xBC, 0xCB, 0xBB, 0xBA,
    0xAA, 0x8A, 0x08, 0x21, 0x45, 0x44, 0x43, 0x34, 0x33, 0x23, 0x12, 0x81, 0xB9, 0xBC, 0xBD, 0xBD,
    0xBC, 0xBB, 0xCB, 0xAB, 0x9A, 0x10, 0x42, 0x45, 0x44, 0x33, 0x43, 0x23, 0x22, 0x01, 0xA0, 0xCB,
    0xCD, 0xCB, 0xBC, 0xBB, 0xAB, 0x9B, 0x89, 0x31, 0x44, 0x54, 0x33, 0x34, 0x33, 0x22, 0x81, 0xC9,
    0xCC, 0xCB, 0xBC, 0xAB, 0x8A, 0x08, 0x32, 0x36, 0x35, 0x34, 0x33, 0x22, 0x81, 0xC9, 0xDC, 0xCC,
    0xCB, 0xBA, 0xBB, 0x8A, 0x18, 0x53, 0x44, 0x53, 0x32, 0x33, 0x32, 0x11, 0x88, 0xBA, 0xDC, 0xBC,
    0xBC, 0xCB, 0xBA, 0xAA, 0x99, 0x18, 0x42, 0x44, 0x34, 0x34, 0x42, 0x12, 0x12, 0x80, 0xA9, 0xDB,
    0xDB, 0xBB, 0xAC, 0xAB, 0x9A, 0x08, 0x21, 0x44, 0x43, 0x33, 0x33, 0x23, 0x01, 0xA9, 0xDB, 0xBC,
    0xBC, 0xAB, 0xAB, 0x08, 0x31, 0x35, 0x44, 0x33, 0x32, 0x12, 0x01, 0xB9, 0xCD, 0xBC, 0xBB, 0xBB,
    0x09, 0x31, 0x26, 0x22, 0x00, 0x99, 0xCA, 0xCB, 0x8A, 0x10, 0x52, 0x43, 0x43, 0x33, 0x34, 0x24,
    0x11, 0x90, 0xD9, 0xDD, 0xCB, 0xAC, 0xBB, 0xAA, 0x09, 0x10, 0x44, 0x34, 0x35, 0x43, 0x33, 0x32,
    0x81, 0xB8, 0xCC, 0xCD, 0xBB, 0xAC, 0xAA, 0x8A, 0x10, 0x53, 0x43, 0x33, 0x24, 0x13, 0x12, 0x80,
    0x99, 0xCB, 0xAC, 0xAC, 0xAB, 0xBB, 0xAB, 0xAA, 0x9A, 0x9A, 0x63, 0x46, 0x53, 0x34, 0x43, 0x23,
    0x02, 0xA8, 0xEB, 0xCC, 0xCB, 0xBB, 0xBC, 0x9A, 0x08, 0x32, 0x46, 0x34, 0x34, 0x33, 0x22, 0x91,
    0xC9, 0xBD, 0xCC, 0xBA, 0xBB, 0x9A, 0x09, 0x20, 0x34, 0x35, 0x35, 0x43, 0x33, 0x12, 0x00, 0xBA,
    0xBF, 0xBD, 0xBB, 0xBA, 0x9A, 0x08, 0x42, 0x44, 0x43, 0x24, 0x32, 0x21, 0x00, 0xA9, 0xBC, 0xBC,
    0xAC, 0xAA, 0x9A, 0x89, 0x88, 0x10, 0x21, 0x33, 0x44, 0x33, 0x33, 0x22, 0xB0, 0xEC, 0xCC, 0xCB,
    0xBA, 0x9B, 0x19, 0x41, 0x45, 0x34, 0x34, 0x34, 0x23, 0x23, 0x01, 0xA9, 0xCE, 0xBD, 0xBD, 0xCB,
    0xBB, 0xAA, 0x89, 0x10, 0x53, 0x44, 0x53, 0x33, 0x43, 0x32, 0x12, 0x81, 0xA8, 0xCC, 0xBC, 0xCC,
    0xAB, 0xBB, 0xAB, 0x99, 0x18, 0x42, 0x44, 0x34, 0x34, 0x23, 0x33, 0x11, 0x81, 0xA8, 0xBC, 0xCC,
    0xCB, 0xBB, 0xBC, 0xBB, 0xBA, 0xAA, 0x88, 0x20, 0x54, 0x55, 0x53, 0x33, 0x24, 0x23, 0x02, 0x98,
    0xCB, 0xCC, 0xDB, 0xBA, 0xAC, 0xBA, 0xA9, 0x88, 0x20, 0x44, 0x44, 0x34, 0x43, 0x33, 0x22, 0x00,
    0xA9, 0xCD, 0xBC, 0xCC, 0xAA, 0xAB, 0x99, 0x08, 0x31, 0x54, 0x33, 0x25, 0x33, 0x23, 0x12, 0x80,
    0xB9, 0xCC, 0xBC, 0xAC, 0xAB, 0xBA, 0xA9, 0x89, 0x00, 0x22, 0x35, 0x43, 0x33, 0x23, 0x11, 0x98,
    0x89, 0x08, 0x18, 0x22, 0x43, 0x33, 0x34, 0x43, 0x43, 0x33, 0x13, 0xDC, 0xDD, 0xCC, 0xBC, 0xDB,
    0xBA, 0xAA, 0xAA, 0x08, 0x20, 0x45, 0x54, 0x33, 0x35, 0x43, 0x32, 0x12, 0x01, 0x98, 0xBA, 0xEB,
    0xBD, 0xCC, 0xCB, 0xCB, 0xBA, 0x9B, 0x89, 0x21, 0x45, 0x34, 0x35, 0x43, 0x23, 0x13, 0x02, 0x98,
    0xDA, 0xBC, 0xCC, 0xBB, 0xBB, 0xAB, 0x9A, 0x00, 0x43, 0x35, 0x35, 0x43, 0x43, 0x12, 0x02, 0x90,
    0xCA, 0xCC, 0xBC, 0xBC, 0xBB, 0xAB, 0x88, 0x31, 0x46, 0x34, 0x34, 0x33, 0x33, 0x11, 0x98, 0xDB,
    0xCC, 0xBC, 0xBB, 0xAC, 0x9A, 0x08, 0x21, 0x42, 0x34, 0x43, 0x32, 0x22, 0x11, 0x01, 0x80, 0xA9,
    0xCB, 0xEB, 0xDB, 0xBB, 0xAC, 0xAA, 0x88, 0x31, 0x54, 0x34, 0x33, 0x33, 0x12, 0x80, 0xBB, 0xBE,
    0xBC, 0xBC, 0xAC, 0xAB, 0x89, 0x18, 0x43, 0x45, 0x43, 0x33, 0x23, 0x22, 0x90, 0xBA, 0xCD, 0xDB,
    0xBA, 0xAB, 0x9B, 0x8A, 0x11, 0x53, 0x53, 0x33, 0x33, 0x23, 0x00, 0xB9, 0xCC, 0xCC, 0xAB, 0x9B,
    0x8A, 0x20, 0x54, 0x34, 0x24, 0x23, 0x02, 0xA8, 0xCC, 0xCC, 0xCB, 0xAB, 0xAB, 0x99, 0x20, 0x63,
    0x34, 0x35, 0x33, 0x33, 0x33, 0x11, 0xA8, 0xFB, 0xDB, 0xCC, 0xCB, 0xAB, 0xBB, 0x9A, 0x30, 0x64,
    0x53, 0x43, 0x43, 0x22, 0x10, 0xA8, 0xCA, 0xDB, 0xCB, 0xAB, 0xBA, 0x99, 0x08, 0x21, 0x43, 0x53,
    0x23, 0x33, 0x22, 0x22, 0x22, 0x22, 0x10, 0x88, 0xDA, 0xCC, 0xBC, 0xCD, 0xBB, 0xBC, 0xBA, 0x9A,
    0x20, 0x54, 0x44, 0x43, 0x33, 0x23, 0x01, 0x99, 0xDB, 0xBC, 0xAD, 0xBB, 0xBA, 0x89, 0x10, 0x63,
    0x43, 0x34, 0x33, 0x13, 0x00, 0xAA, 0xBD, 0xBD, 0xBB, 0xAA, 0x9A, 0x99, 0x08, 0x31, 0x63, 0x53,
    0x34, 0x34, 0x33, 0x33, 0x12, 0x98, 0xEB, 0xDB, 0xCB, 0xCB, 0xBA, 0xBA, 0x9A, 0x89, 0x11, 0x44,
    0x44, 0x53, 0x32, 0x33, 0x33, 0x01, 0x98, 0xDB, 0xDB, 0xBB, 0xCB, 0xBB, 0xBA, 0xBA, 0x9A, 0x09,
    0x42, 0x54, 0x44, 0x43, 0x43, 0x22, 0x22, 0x11, 0x80, 0x99, 0xCC, 0xBC, 0xBD, 0xBD, 0xCB, 0xBB,
    0xBA, 0x99, 0x21, 0x44, 0x45, 0x43, 0x34, 0x32, 0x22, 0x11, 0xA8, 0xCB, 0xBD, 0xCC, 0xBA, 0xBB,
    0xAA, 0x09, 0x30, 0x44, 0x44, 0x43, 0x23, 0x13, 0x01, 0xB8, 0xDC, 0xBC, 0xEA, 0xF5, 0x41, 0x00,
    0xAC, 0xAB, 0x9A, 0x10, 0x32, 0x45, 0x43, 0x33, 0x43, 0x22, 0x22, 0x21, 0x80, 0xBA, 0xCD, 0xCC,
    0xBC, 0xCB, 0xBB, 0xBA, 0x99, 0x10, 0x43, 0x45, 0x34, 0x34, 0x33, 0x23, 0x01, 0xA9, 0xBD, 0xCD,
    0xBB, 0xAC, 0x9A, 0x09, 0x21, 0x44, 0x34, 0x43, 0x22, 0x02, 0x98, 0xCA, 0xBD, 0xDB, 0xBA, 0xAA,
    0x09, 0x10, 0x34, 0x35, 0x43, 0x33, 0x12, 0x01, 0xA9, 0xCB, 0xBC, 0xCB, 0x9A, 0x09, 0x11, 0x43,
    0x43, 0x12, 0x98, 0xCB, 0xBE, 0xCC, 0xAB, 0x9A, 0x08, 0x42, 0x44, 0x34, 0x34, 0x33, 0x12, 0x01,
    0xA9, 0xDC, 0xDB, 0xCB, 0xCA, 0xAA, 0x99, 0x08, 0x31, 0x44, 0x34, 0x34, 0x33, 0x22, 0x01, 0xB9,
    0xCC, 0xCC, 0xBB, 0xBB, 0xAA, 0x9A, 0x00, 0x32, 0x35, 0x44, 0x32, 0x32, 0x13, 0x12, 0x02, 0x01,
    0x90, 0xA8, 0xCB, 0xCF, 0xCC, 0xCB, 0xBB, 0xBB, 0x09, 0x42, 0x45, 0x34, 0x33, 0x33, 0x12, 0x80,
    0xCB, 0xDC, 0xCB, 0xBA, 0xAB, 0x99, 0x11, 0x44, 0x53, 0x32, 0x23, 0x11, 0xA8, 0xCA, 0xCC, 0xBB,
    0xAC, 0x9A, 0x08, 0x41, 0x44, 0x43, 0x43, 0x22, 0x81, 0xA9, 0xCC, 0xCB, 0xCB, 0xAA, 0x99, 0x08,
    0x10, 0x32, 0x53, 0x43, 0x42, 0x43, 0x33, 0x24, 0x13, 0x02, 0xCA, 0xCE, 0xBC, 0xBC, 0xBB, 0xAB,
    0x08, 0x32, 0x44, 0x43, 0x24, 0x23, 0x22, 0x11, 0x80, 0xAA, 0xBE, 0xBD, 0xAC, 0x9B, 0x8A, 0x21,
    0x54, 0x53, 0x43, 0x33, 0x12, 0x81, 0xCA, 0xCD, 0xBD, 0xCB, 0xAB, 0xAA, 0x18, 0x53, 0x44, 0x34,
    0x34, 0x23, 0x02, 0x80, 0xCB, 0xCD, 0xCB, 0xBB, 0xBA, 0x9A, 0x18, 0x42, 0x44, 0x24, 0x24, 0x22,
    0x11, 0x81, 0x99, 0xBB, 0xCD, 0xBB, 0xAC, 0xAA, 0x9A, 0x18, 0x41, 0x53, 0x43, 0x34, 0x22, 0x12,
    0x81, 0xB9, 0xCC, 0xBC, 0xBC, 0xBB, 0xAB, 0x8A, 0x28, 0x52, 0x34, 0x44, 0x33, 0x24, 0x23, 0x21,
    0x90, 0xCA, 0xCD, 0xCB, 0xAB, 0xBB, 0x9A, 0x08, 0x20, 0x53, 0x43, 0x43, 0x24, 0x33, 0x33, 0x12,
    0x90, 0xDC, 0xCC, 0xCB, 0xCB, 0xAB, 0x89, 0x18, 0x43, 0x35, 0x25, 0x33, 0x23, 0x01, 0xA9, 0xCC,
    0xCC, 0xBB, 0xAC, 0x9A, 0x09, 0x21, 0x63, 0x43, 0x33, 0x34, 0x32, 0x01, 0x90, 0xEB, 0xBC, 0xBD,
    0xCB, 0xAA, 0x8A, 0x10, 0x34, 0x36, 0x53, 0x32, 0x11, 0x80, 0xB9, 0xCC, 0xBC, 0xAC, 0xAA, 0x99,
    0x10, 0x32, 0x44, 0x34, 0x43, 0x22, 0x22, 0x00, 0x99, 0xCB, 0xCC, 0xBC, 0xCB, 0xBB, 0xAB, 0x0A,
    0x30, 0x54, 0x34, 0x34, 0x24, 0x12, 0x00, 0x99, 0xBA, 0xBC, 0xBC, 0xAA, 0xAA, 0x99, 0x08, 0x22,
    0x34, 0x35, 0x33, 0x33, 0x81, 0xCA, 0xBD, 0xAC, 0xAB, 0x09, 0x31, 0x54, 0x44, 0x33, 0x14, 0x81,
    0xBA, 0xCE, 0xBD, 0xBC, 0xAB, 0x99, 0x20, 0x45, 0x44, 0x24

};

#define  STEPLAND_WAV  2720

__align(2)
const U8 StepLand_wav[2720] =
{
    0x52, 0x49, 0x46, 0x46, 0x98, 0x0A, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
    0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x44, 0xAC, 0x00, 0x00, 0x6D, 0x56, 0x00, 0x00,
    0x00, 0x04, 0x04, 0x00, 0x02, 0x00, 0xF9, 0x07, 0x66, 0x61, 0x63, 0x74, 0x04, 0x00, 0x00, 0x00,
    0xAD, 0x14, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x64, 0x0A, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
    0xFF, 0xFF, 0x9B, 0x57, 0xB1, 0xBE, 0x68, 0x83, 0x8B, 0x80, 0x74, 0x82, 0x99, 0x29, 0x04, 0x8A,
    0xB0, 0x0C, 0x47, 0x00, 0x02, 0xBA, 0xEB, 0x29, 0x12, 0x65, 0x92, 0xB9, 0xAA, 0x18, 0x24, 0x42,
    0xD8, 0x8A, 0xAD, 0x62, 0x81, 0x11, 0xDA, 0x0A, 0x90, 0x90, 0xAB, 0x53, 0x83, 0xBD, 0x30, 0x11,
    0x92, 0x09, 0xED, 0x31, 0x98, 0x98, 0x0C, 0x33, 0x26, 0xB0, 0xBE, 0x51, 0x90, 0x18, 0x81, 0x88,
    0xA9, 0x80, 0x99, 0x71, 0x24, 0x12, 0xA9, 0x9B, 0x28, 0xB0, 0x1A, 0x08, 0x57, 0x13, 0xA8, 0x0A,
    0xFB, 0x5B, 0x04, 0x09, 0xFA, 0x29, 0x24, 0x90, 0xBA, 0x8A, 0x42, 0x83, 0xCB, 0x9A, 0x42, 0x82,
    0x42, 0xC0, 0x88, 0xAB, 0x12, 0xAB, 0xB9, 0x39, 0x46, 0x12, 0x10, 0xC8, 0xAC, 0x98, 0x88, 0x20,
    0x37, 0x90, 0x33, 0xBC, 0x43, 0xCB, 0x18, 0x24, 0xB0, 0x09, 0x98, 0x1A, 0x17, 0xCD, 0xB9, 0x3A,
    0x16, 0x00, 0xDB, 0x9A, 0x00, 0xA8, 0x52, 0xDA, 0x40, 0x80, 0x18, 0xA8, 0xCC, 0x8A, 0x19, 0x42,
    0x31, 0x83, 0xBF, 0x8A, 0x9A, 0x10, 0x63, 0x91, 0x09, 0x28, 0xB4, 0x0F, 0x02, 0x20, 0xB0, 0x60,
    0x32, 0x93, 0x9C, 0xEB, 0x19, 0x32, 0x03, 0xA8, 0x1A, 0x47, 0x08, 0x90, 0x30, 0xA2, 0xBB, 0x3B,
    0x27, 0x41, 0xC1, 0x0A, 0xC8, 0x49, 0x13, 0x01, 0xCA, 0x29, 0x25, 0xC8, 0x8A, 0x09, 0xA1, 0x9D,
    0x32, 0x22, 0x80, 0x31, 0xFA, 0x9E, 0x00, 0x18, 0x80, 0x9A, 0xB8, 0x9C, 0x53, 0xE9, 0x18, 0x90,
    0x80, 0x90, 0xAC, 0x89, 0xAB, 0x42, 0x42, 0x01, 0xBA, 0x69, 0xE1, 0xAD, 0xBC, 0x72, 0x12, 0x80,
    0x9A, 0x90, 0x0A, 0x81, 0x8B, 0x13, 0x21, 0x99, 0x11, 0xED, 0xBC, 0x8C, 0x31, 0x25, 0x81, 0x9A,
    0x10, 0x31, 0xA2, 0x8D, 0x12, 0x00, 0xFA, 0x9D, 0x31, 0x99, 0x44, 0x82, 0xBA, 0x30, 0x80, 0xCB,
    0x78, 0x14, 0xA8, 0x9C, 0x00, 0xA8, 0xAC, 0x52, 0x22, 0x90, 0x1A, 0x36, 0xC0, 0xAC, 0x38, 0x84,
    0xBD, 0x1A, 0x44, 0x12, 0xD8, 0x8A, 0x92, 0x9C, 0x09, 0x44, 0x01, 0xA9, 0x9A, 0x38, 0x26, 0x90,
    0xBE, 0x29, 0x53, 0x03, 0xBA, 0xAE, 0x18, 0x12, 0x11, 0xA8, 0x9A, 0xB0, 0x0C, 0x33, 0x04, 0xCD,
    0x8A, 0x51, 0x83, 0x8A, 0x81, 0x98, 0xCC, 0x9A, 0x41, 0x92, 0xAC, 0xBB, 0x88, 0x20, 0x26, 0x91,
    0xAB, 0x72, 0x27, 0xA9, 0x88, 0x08, 0x08, 0x33, 0x91, 0xA8, 0x0A, 0x44, 0x54, 0xA1, 0xAD, 0x51,
    0x23, 0xC9, 0xAC, 0x31, 0x05, 0x9A, 0x43, 0x02, 0xCA, 0x89, 0x08, 0x43, 0x98, 0x18, 0x27, 0x28,
    0xB2, 0xAD, 0x08, 0x24, 0xCB, 0x10, 0x18, 0x41, 0x85, 0xDB, 0xCB, 0x38, 0x03, 0xA0, 0x8C, 0x08,
    0xA8, 0x8A, 0x01, 0x0A, 0x92, 0x1C, 0x37, 0xFA, 0xAB, 0x39, 0xE2, 0x8C, 0x21, 0x00, 0x10, 0xA8,
    0xA9, 0x8B, 0xDA, 0x2A, 0x62, 0x15, 0xC8, 0x9C, 0x34, 0xBA, 0x19, 0x20, 0x90, 0x63, 0x80, 0xA0,
    0x8C, 0x55, 0x02, 0x11, 0xC9, 0xAC, 0x29, 0x22, 0x45, 0x81, 0xCB, 0x89, 0x20, 0x02, 0xA8, 0x18,
    0x13, 0x28, 0xFA, 0x1D, 0x90, 0x31, 0x73, 0x03, 0xB8, 0xBE, 0x88, 0x40, 0x14, 0xD9, 0x9C, 0x53,
    0x12, 0x98, 0xA8, 0xCB, 0x08, 0x53, 0x02, 0xAB, 0x20, 0x91, 0x8A, 0x12, 0xA9, 0x49, 0xE3, 0x9F,
    0x21, 0x82, 0x98, 0xB9, 0x0C, 0x45, 0x81, 0x08, 0x91, 0x9B, 0x42, 0x01, 0xA8, 0xBA, 0x70, 0x04,
    0xBA, 0x09, 0x23, 0x53, 0xD1, 0x0B, 0x41, 0x04, 0xBB, 0xA0, 0x9B, 0x90, 0x50, 0x27, 0x01, 0xBB,
    0x9B, 0x32, 0x45, 0x82, 0xEA, 0x9B, 0x11, 0x21, 0x99, 0x01, 0x29, 0xF1, 0xAF, 0x52, 0x03, 0xAB,
    0x50, 0x02, 0xDA, 0xAC, 0x30, 0x13, 0x98, 0x21, 0x01, 0x32, 0x83, 0xED, 0x99, 0x98, 0x10, 0x44,
    0x02, 0xCA, 0xAA, 0x1A, 0x35, 0x90, 0x20, 0x44, 0xB0, 0xCD, 0x1A, 0x24, 0xB8, 0x09, 0x34, 0x81,
    0x08, 0x88, 0xB9, 0xBF, 0x0B, 0x55, 0x90, 0x19, 0xA2, 0x8B, 0x44, 0xB1, 0xAF, 0x80, 0x89, 0x62,
    0x14, 0xA8, 0xAB, 0xBA, 0x18, 0x23, 0x81, 0xAA, 0x52, 0x32, 0x23, 0xFB, 0xAF, 0x08, 0x32, 0x11,
    0x80, 0x98, 0xAB, 0x88, 0xCB, 0x0B, 0x12, 0x70, 0x27, 0x98, 0x09, 0x90, 0xAA, 0xC9, 0x9B, 0x62,
    0x14, 0x20, 0x93, 0xBD, 0x0B, 0x22, 0x22, 0x81, 0xDA, 0x0B, 0x47, 0xB0, 0xBD, 0x48, 0x24, 0xA9,
    0x9A, 0x20, 0x02, 0x10, 0xD0, 0xBF, 0x30, 0x26, 0x80, 0x98, 0x9A, 0x89, 0x09, 0x81, 0x98, 0x18,
    0x63, 0x44, 0xC0, 0xCC, 0xAA, 0x38, 0x36, 0x80, 0x08, 0x11, 0x90, 0xCC, 0x9B, 0x18, 0x54, 0xB0,
    0x8D, 0x32, 0x91, 0x40, 0xA3, 0xBE, 0x9A, 0x40, 0x34, 0xB8, 0x9E, 0x42, 0x82, 0xCA, 0xAB, 0x31,
    0x45, 0x02, 0xC9, 0xBC, 0x19, 0x32, 0x02, 0x99, 0x88, 0x18, 0x21, 0x80, 0x98, 0xFB, 0x8E, 0x52,
    0x13, 0xC9, 0xBB, 0x40, 0x16, 0xB8, 0x9C, 0x31, 0x02, 0xA9, 0x20, 0x91, 0xAD, 0x10, 0x22, 0xA0,
    0x1B, 0x25, 0xEA, 0x0A, 0x23, 0x21, 0x94, 0xEF, 0x0A, 0x22, 0x42, 0x12, 0xDB, 0xBB, 0x0A, 0x52,
    0x22, 0x80, 0xAB, 0x60, 0x83, 0xCC, 0x0A, 0x31, 0x01, 0x08, 0x53, 0xA1, 0xEC, 0xAA, 0x40, 0x14,
    0xAA, 0x31, 0x84, 0xCA, 0x9A, 0x30, 0x23, 0x81, 0xEA, 0x9D, 0x31, 0x80, 0x51, 0x83, 0xBD, 0x18,
    0x88, 0x54, 0xD0, 0x9D, 0x28, 0x43, 0x22, 0xB8, 0xBD, 0x99, 0x08, 0x31, 0x24, 0x21, 0x02, 0xFC,
    0x9B, 0x10, 0x42, 0x12, 0xDB, 0x9B, 0x11, 0x32, 0x13, 0x31, 0xC0, 0xBF, 0x8A, 0x18, 0x31, 0x33,
    0x04, 0xA9, 0x89, 0xC9, 0xCC, 0x09, 0x21, 0x53, 0x24, 0x01, 0xFB, 0x9D, 0x20, 0x23, 0x81, 0xA8,
    0xDA, 0xAB, 0x30, 0x44, 0x12, 0x01, 0xB1, 0xEF, 0x8A, 0x20, 0x43, 0x12, 0x98, 0xBA, 0xCB, 0x38,
    0x25, 0x98, 0x88, 0xB9, 0x60, 0x13, 0xCC, 0x1A, 0x02, 0x88, 0x10, 0x89, 0x55, 0xA0, 0xBB, 0x29,
    0x14, 0x88, 0x00, 0x19, 0x57, 0xB0, 0xBE, 0x28, 0x34, 0xC0, 0x9C, 0x31, 0xB0, 0x39, 0x37, 0xC8,
    0x99, 0x90, 0x08, 0x01, 0x89, 0x00, 0x31, 0x34, 0xA0, 0xBB, 0xAC, 0x88, 0x80, 0x00, 0x53, 0x03,
    0xFC, 0x9C, 0x42, 0x03, 0x11, 0xF9, 0x0A, 0x23, 0xDA, 0xAB, 0x70, 0x24, 0xA8, 0x89, 0x88, 0x89,
    0x31, 0xA2, 0xBD, 0x39, 0x36, 0xD8, 0x8B, 0x44, 0x92, 0xBB, 0x08, 0x01, 0x41, 0x16, 0xC9, 0x8A,
    0x99, 0x8B, 0x32, 0x12, 0x64, 0x13, 0xEB, 0x9B, 0x28, 0x22, 0x20, 0x91, 0xCE, 0x39, 0x15, 0x80,
    0x98, 0xCC, 0x8A, 0x32, 0x25, 0x90, 0x18, 0x14, 0xEC, 0x8B, 0x31, 0x14, 0x90, 0xBB, 0x09, 0x44,
    0x81, 0x99, 0x99, 0xBA, 0x40, 0x26, 0x90, 0xAC, 0x89, 0x11, 0x11, 0x80, 0x8A, 0x74, 0x15, 0xB8,
    0xBD, 0x19, 0x23, 0x88, 0x88, 0x18, 0x83, 0xDD, 0x1A, 0x32, 0x80, 0x18, 0x36, 0xB0, 0xBF, 0x10,
    0x03, 0x10, 0x81, 0x98, 0xDA, 0xBB, 0x48, 0x27, 0x91, 0x09, 0x91, 0xAB, 0x11, 0x31, 0x06, 0xEA,
    0x8A, 0x11, 0x10, 0x11, 0x53, 0x24, 0xF9, 0xBD, 0x28, 0x34, 0x02, 0xC9, 0xAB, 0x18, 0x33, 0x90,
    0xAC, 0x38, 0x04, 0x89, 0x88, 0xDC, 0x29, 0x14, 0x01, 0xA0, 0x08, 0x98, 0xEB, 0x09, 0x12, 0x11,
    0x44, 0x03, 0x40, 0xC2, 0xCF, 0x9A, 0x10, 0x52, 0x03, 0x98, 0x9A, 0x20, 0x32, 0xE8, 0xBE, 0x0A,
    0x23, 0x11, 0x43, 0x23, 0xF0, 0xBE, 0x29, 0x23, 0x08, 0x98, 0x08, 0x53, 0x92, 0xAC, 0xBA, 0x9B,
    0x70, 0x24, 0x80, 0x88, 0xA9, 0x8C, 0x43, 0xA1, 0xAD, 0x88, 0x10, 0x44, 0xE2, 0x13, 0x41, 0x00,
    0xA8, 0x8B, 0x04, 0xDD, 0x0B, 0x73, 0x22, 0xA9, 0x8A, 0xA0, 0xAD, 0x30, 0x34, 0xA0, 0xAB, 0x20,
    0x99, 0x40, 0x82, 0x10, 0x23, 0x98, 0xEA, 0xAC, 0xCA, 0x70, 0x16, 0xBA, 0x1B, 0x24, 0x81, 0x99,
    0xBA, 0x0C, 0x46, 0x91, 0xDB, 0x0A, 0x42, 0x82, 0x08, 0xA8, 0xBB, 0x40, 0x14, 0xBA, 0x8B, 0x33,
    0x23, 0x03, 0xED, 0xBB, 0x29, 0x45, 0x80, 0x89, 0x32, 0xA2, 0xBD, 0x28, 0x01, 0x81, 0x20, 0x26,
    0xFB, 0x8E, 0x11, 0x82, 0x88, 0x9A, 0x19, 0x34, 0x12, 0x88, 0x21, 0xFB, 0xBF, 0x08, 0x52, 0x13,
    0x99, 0x10, 0xD9, 0xAB, 0x41, 0x14, 0xA9, 0x09, 0xA1, 0x8A, 0x34, 0x81, 0x8A, 0x72, 0xA1, 0xAD,
    0x18, 0x81, 0x21, 0x93, 0xBD, 0x28, 0x24, 0x98, 0x89, 0x30, 0x17, 0xFA, 0x9B, 0x38, 0x16, 0xB9,
    0x9B, 0x53, 0x03, 0x80, 0x00, 0xED, 0x0A, 0x11, 0x20, 0x32, 0x80, 0xDB, 0x09, 0x02, 0x99, 0x01,
    0x01, 0x41, 0x15, 0xA9, 0xEB, 0x99, 0xAA, 0x38, 0x57, 0x03, 0x9A, 0xBA, 0x99, 0x99, 0x88, 0x71,
    0x16, 0x90, 0x80, 0xC9, 0x8C, 0x42, 0x90, 0x9A, 0xA8, 0x71, 0x14, 0xC8, 0xAB, 0x18, 0x32, 0x23,
    0xA0, 0x9A, 0x98, 0x8C, 0xD0, 0x9C, 0x63, 0x24, 0x81, 0xCC, 0x9C, 0x41, 0x13, 0x99, 0x80, 0xCA,
    0x19, 0x43, 0x21, 0xA1, 0xBF, 0x2A, 0x43, 0x81, 0xA9, 0x8A, 0x42, 0x90, 0xCA, 0x0A, 0x31, 0x63,
    0x34, 0xD9, 0xBE, 0x29, 0x12, 0x10, 0x13, 0xB9, 0xBC, 0x38, 0x27, 0x90, 0xCA, 0x8B, 0x44, 0x02,
    0xB8, 0x8A, 0xB8, 0x6A, 0x15, 0xD9, 0xAA, 0x30, 0x44, 0xA1, 0x8A, 0x01, 0xFB, 0x19, 0x34, 0x02,
    0xB8, 0xAC, 0x40, 0x82, 0xBA, 0xCC, 0x18, 0x55, 0x82, 0xA9, 0x88, 0x98, 0xBA, 0xAB, 0x61, 0x45,
    0x81, 0xBB, 0x9B, 0x41, 0x01, 0x10, 0x01, 0xFB, 0x9B, 0x71, 0x03, 0xA9, 0x9B, 0x21, 0x98, 0x53,
    0x03, 0xA8, 0xBD, 0xAA, 0x18, 0x74, 0x22, 0xD9, 0x0C, 0x11, 0xB9, 0x19, 0x36, 0x90, 0xBB, 0x48,
    0x82, 0xBA, 0x38, 0x84, 0x19, 0x03, 0xEA, 0xAC, 0x32, 0x83, 0xAD, 0x20, 0x34, 0x92, 0x89, 0x01,
    0xFD, 0x1B, 0x22, 0x90, 0x0B, 0x25, 0x18, 0x36, 0xC0, 0xAF, 0x09, 0x23, 0x00, 0x91, 0x9C, 0x21,
    0x90, 0x18, 0x00, 0x72, 0xB1, 0xAC, 0x08, 0x12, 0x88, 0xA9, 0x28, 0x21, 0x26, 0xDB, 0x1A, 0x45,
    0xA1, 0xCB, 0x18, 0xC8, 0x3B, 0x15, 0x10, 0x01, 0x88, 0xA0, 0xCE, 0xAA, 0x28, 0x02, 0x50, 0x47,
    0x92, 0xCD, 0x09, 0x22, 0x00, 0x23, 0x99, 0xCC, 0x8B, 0x00, 0x08, 0x63, 0x13, 0xB8, 0xBD, 0x89,
    0x28, 0x65, 0x82, 0x89, 0xCA, 0x8B, 0x11, 0x23, 0x00, 0xC0, 0x9D, 0x41, 0x14, 0xCA, 0x9A, 0x10,
    0x20, 0x23, 0x00, 0x11, 0xF9, 0x9B, 0xB9, 0x38, 0x44, 0x24, 0x18, 0x83, 0xDD, 0x9A, 0x98, 0x08,
    0x33, 0x35, 0xC0, 0xAD, 0x89, 0x30, 0x27, 0x99, 0x80, 0x8A, 0xA9, 0x48, 0x34, 0x93, 0xCD, 0xAC,
    0x38, 0x34, 0x81, 0x89, 0x00, 0x13, 0xDC, 0xC9, 0x1B, 0x16, 0x00, 0x32, 0x93, 0xBC, 0xEC, 0x1A,
    0x33, 0x83, 0x98, 0x09, 0x21, 0xA8, 0xDB, 0x68, 0x34, 0xA8, 0x8C, 0x01, 0x51, 0x25, 0x98, 0xAE,
    0x00, 0x20, 0x03, 0xBB, 0x00, 0x81, 0x9B, 0x50, 0x15, 0xBB, 0xBE, 0x28, 0x80, 0x21, 0x88, 0xEA,
    0x09, 0xA9, 0x20, 0x65, 0x91, 0xBA, 0x0B, 0x04, 0xAB, 0x98, 0xAA, 0x72, 0x83, 0x38, 0x24, 0x01,
    0x09, 0xFB, 0x9F, 0x00, 0x12, 0x22, 0xC8, 0xAD, 0x08, 0x23, 0xA0, 0x09, 0x83, 0xAE, 0x31, 0xA0,
    0xBA, 0x71, 0x03, 0x01, 0xB9, 0xBB, 0x8A, 0x41, 0x82, 0x49, 0x36, 0x81, 0xCE, 0x9A, 0x21, 0x00,
    0x21, 0x72, 0x93, 0xAC, 0xAA, 0x21, 0x52, 0x93, 0xDF, 0x19, 0x33, 0x33, 0xA1, 0xAB, 0x19, 0x13,
    0xCC, 0x09, 0x98, 0x1A, 0x23, 0x27, 0xB8, 0x01, 0xBD, 0x42, 0x01, 0xDA, 0x2A, 0x23, 0x10, 0x91,
    0xCD, 0x29, 0x06, 0xBB, 0x10, 0x30, 0xA2, 0x9C, 0x99, 0x54, 0xE9, 0x19, 0x13, 0x02, 0xA0, 0xCF,
    0x18, 0x91, 0x31, 0x23, 0x91, 0xBD, 0x29, 0x35, 0x01, 0xFB, 0x1B, 0x23, 0x11, 0xC9, 0xAB, 0x68,
    0x15, 0x90, 0xAB, 0x89, 0x20, 0x42, 0x23, 0xEB, 0xBB, 0x30, 0x14, 0x88, 0x10, 0xA1, 0x39, 0xF2,
    0x8F, 0x12, 0x00, 0x80, 0x99, 0x89, 0x08, 0x73, 0x02, 0xCD, 0x19, 0x22, 0x81, 0x72, 0xB1, 0x9C,
    0x88, 0x09, 0x28, 0x35, 0x92, 0xDA, 0xAC, 0x30, 0x84, 0x28, 0x13, 0xA9, 0xCC, 0x28, 0xA9, 0x00,
    0x20, 0xD0, 0x59, 0x82, 0x80, 0x9E, 0x03, 0x1A, 0x24, 0x22, 0x80, 0xC0, 0xCF, 0x29, 0x02, 0x8A,
    0xEA, 0x9B, 0x21, 0x45, 0x91, 0x89, 0xE9, 0x8C, 0x12, 0x18, 0x34, 0x82, 0xFC, 0x9A, 0x28, 0x31,
    0x24, 0xC9, 0x0A, 0x13, 0x99, 0x30, 0x92, 0x0B, 0x27, 0xDB, 0x8A, 0x32, 0x83, 0x9B, 0x08, 0x00,
    0x31, 0xE0, 0x8C, 0x36, 0xA0, 0x9B, 0x20, 0x02, 0xBA, 0xEE, 0x29, 0x04, 0xB9, 0x18, 0x64, 0x82,
    0x09, 0xB8, 0xAE, 0x08, 0x32, 0x24, 0xA1, 0xBD, 0x18, 0x23, 0x18, 0xC2, 0xDF, 0x89, 0x32, 0x81,
    0x20, 0x24, 0xB0, 0x9E, 0x88, 0x89, 0x31, 0x33, 0x81, 0x98, 0xD9, 0x9A, 0x88, 0x57, 0xD0, 0x0A,
    0x23, 0x02, 0xAA, 0x80, 0xAA, 0x8D, 0x33, 0xBA, 0xDA, 0x78, 0x83, 0x88, 0xBE, 0x20, 0x02, 0x12,
    0x02, 0x89, 0xC9, 0x8A, 0xCF, 0x40, 0x21, 0x02, 0x8A, 0x11, 0xC8, 0x9E, 0x21, 0x22, 0xBA, 0x20,
    0x98, 0xBF, 0x42, 0x00, 0x92, 0xAD, 0x80, 0x72, 0x03, 0xBB, 0x30, 0x83, 0x09, 0xC8, 0xBB, 0x8A,
    0x41, 0x35, 0x80, 0x98, 0x48, 0xD2, 0xAE, 0x08, 0x72, 0x13, 0xB9, 0x0B, 0x90, 0xCB, 0x2A, 0x15,
    0x18, 0x03, 0x8B, 0x52, 0x94, 0xDF, 0x10, 0x12, 0xB9, 0x2B, 0x15, 0x98, 0x09, 0x90, 0x9B, 0x28,
    0x36, 0x10, 0xC8, 0x0B, 0x53, 0x13, 0xCC, 0x98, 0x8A, 0x43, 0x98, 0x0A, 0x41, 0x91, 0x51, 0x90,
    0x31, 0xC0, 0xAD, 0x21, 0x90, 0x31, 0x02, 0xFD, 0x1B, 0x92, 0x50, 0x16, 0xD8, 0x8A, 0x80, 0x18,
    0x24, 0xA8, 0xBC, 0x49, 0x14, 0x98, 0x88, 0x01, 0x18, 0x03, 0x99, 0xAF, 0x31, 0x18, 0xA1, 0x58,
    0x03, 0x82, 0xBF, 0xA9, 0x30, 0xC9, 0x61, 0x31, 0xC1, 0x8C, 0x22, 0x90, 0x9D, 0x01, 0xAC, 0x41,
    0x33, 0x91, 0x89, 0x9A, 0x18, 0x22, 0x90, 0x34, 0xDB, 0x21, 0x11, 0xE0, 0xBC, 0x9D, 0x73, 0x82,
    0xCB, 0x2A, 0x24, 0xA9, 0x0B, 0x33, 0x82, 0x98, 0xA9, 0x1B, 0x57, 0xB0, 0x1B, 0x16, 0xB9, 0x99,
    0x28, 0x34, 0x24, 0xE9, 0xAC, 0x21, 0x91, 0x09, 0x11, 0x99, 0xB9, 0x3B, 0xC4, 0x8F, 0x43, 0x81,
    0xAA, 0x09, 0x22, 0xCA, 0x89, 0x89, 0x64, 0x82, 0xBB, 0x10, 0x82, 0x8B, 0x33, 0xED, 0x19, 0x25,
    0x98, 0x99, 0x29, 0x37, 0xD9, 0x8B, 0x11, 0x01, 0xDC, 0x38, 0x26, 0xA0, 0x9A, 0x99, 0x28, 0x23,
    0xB0, 0x1C, 0x27, 0xB8, 0x9D, 0x98, 0x28, 0x23, 0x22, 0x10, 0x24, 0xCA, 0xBC, 0x19, 0xC0, 0x3A,
    0x33, 0xA3, 0x9F, 0x33, 0xC9, 0x19, 0x84, 0x9C, 0x11, 0x29, 0x12, 0x82, 0xAE, 0x91, 0xAF, 0x89,
    0x42, 0x91, 0x20, 0x22, 0x93, 0xAF, 0xA0, 0xAD, 0x32, 0x11, 0xA0, 0x8C, 0x63, 0xB2, 0xAF, 0x10,
    0x11, 0x80, 0x18, 0x98, 0x80, 0x60, 0x04, 0xDB, 0x9C, 0x00, 0x09, 0x23, 0x88, 0xA9, 0x41, 0x90,
    0x08, 0xA9, 0xCC, 0x61, 0x14, 0x02, 0xCA, 0x38, 0x34, 0xD8, 0xAB, 0x08, 0x23, 0xA0, 0xBC, 0x18,
    0x55, 0xA2, 0xAD, 0x99, 0x21, 0x81, 0x01, 0x00, 0xB0, 0xAD, 0xBB, 0x41, 0x91, 0xE6, 0x33, 0x00,
    0x42, 0x83, 0xDF, 0x39, 0x24, 0x08, 0x80, 0xC9, 0xCC, 0x0A, 0x34, 0x83, 0x98, 0x10, 0x23, 0xA8,
    0xBD, 0xEB, 0x9B, 0x32, 0x36, 0x92, 0x09, 0xC0, 0xAB, 0x99, 0x21, 0x81, 0x11, 0x92, 0x78, 0x37,
    0x00, 0xE8, 0x8B, 0xA8, 0x28, 0x72, 0x13, 0xB9, 0xAD, 0x38, 0xA2, 0x09, 0x00, 0x20, 0x36, 0xC0,
    0xCD, 0x9A, 0x31, 0x13, 0x21, 0x04, 0xBA, 0xA9, 0x0B, 0x63, 0x34, 0xC0, 0x9B, 0x51, 0x24, 0xA1,
    0xAC, 0x41, 0x13, 0xA8, 0xCB, 0x9B, 0x21, 0x00, 0x44, 0xA0, 0xBC, 0x8A, 0x88, 0x42, 0x42, 0x16,
    0xAA, 0x18, 0x90, 0xBE, 0x60, 0x25, 0xC9, 0x8B, 0x41, 0x33, 0x00, 0x82, 0xDB, 0xBC, 0x9A, 0x38,
    0x27, 0x90, 0x9C, 0x31, 0x34, 0x81, 0xBB, 0xBB, 0x9C, 0x41, 0x23, 0x80, 0xCD, 0x38, 0x82, 0x61,
    0x25, 0xC9, 0xAB, 0x89, 0x22, 0x21, 0x24, 0x11, 0xB0, 0xAE, 0x19, 0x24, 0x11, 0xA8, 0x0A, 0x73,
    0x03, 0xAA, 0xBC, 0x9B, 0x90, 0xBB, 0x62, 0x74, 0x13, 0xB9, 0x8B, 0x21, 0x98, 0x88, 0x8B, 0x45,
    0x12, 0xCA, 0x48, 0x91, 0xAD, 0x42, 0x80, 0x18, 0xB8, 0xCE, 0x29, 0x37, 0x82, 0xBA, 0xBB, 0x49,
    0x25, 0x81, 0xAA, 0xB9, 0x1A, 0x35, 0x80, 0x18, 0x02, 0xED, 0x09, 0x35, 0xC8, 0xBB, 0x19, 0x35,
    0x12, 0xB9, 0xAC, 0x89, 0x98, 0x18, 0x46, 0x12, 0x91, 0xCC, 0x9B, 0x51, 0x03, 0xB9, 0xAB, 0xAA,
    0x28, 0x56, 0x82, 0xAB, 0x88, 0xA9, 0x89, 0x33, 0x20, 0x47, 0x91, 0xCC, 0x9B, 0x18, 0x00, 0x73,
    0x13, 0xA9, 0xBA, 0xA9, 0xBA, 0x0B, 0x65, 0x43, 0xB0, 0x9E, 0x88, 0x11, 0x10, 0x23, 0xA8, 0x09,
    0x22, 0x01, 0x92, 0xFD, 0xAC, 0x20, 0x25, 0x02, 0xA8, 0x89, 0xA0, 0xCD, 0x0B, 0x43, 0x91, 0xCA,
    0x0A, 0x53, 0x02, 0xA0, 0xCF, 0x9B, 0x22, 0x24, 0x91, 0xB9, 0x89, 0x90, 0x09, 0x34, 0xD2, 0xAD,
    0x89, 0x19, 0x44, 0x23, 0xDA, 0x0B, 0x24, 0xA8, 0xA9, 0xCC, 0x9B, 0x40, 0x25, 0x33, 0x82, 0x99,
    0xEB, 0xAB, 0x19, 0x54, 0x13, 0xDB, 0x0A, 0x53, 0x92, 0xCA, 0xBA, 0x29, 0x36, 0xA8, 0xAC, 0x19,
    0x53, 0x82, 0xCB, 0x09, 0x01, 0x08, 0x88, 0x20, 0x12, 0xE9, 0x8C, 0x11, 0xA8, 0x9B, 0x64, 0x44,
    0x12, 0xA8, 0xDB, 0x19, 0x11, 0x82, 0xDC, 0x0A, 0x01, 0x98, 0x80, 0xDC, 0x9A, 0x28, 0x25, 0x13,
    0xEB, 0xAC, 0x20, 0x33, 0x83, 0xBF, 0x38, 0x23, 0xA0, 0x9C, 0x10, 0x80, 0x21, 0x12, 0x03, 0xDD,
    0xAB, 0x0B, 0x75, 0x24, 0xA1, 0xCB, 0xBB, 0x19, 0x33, 0xA1, 0xAC, 0x10, 0x24, 0xA0, 0xBC, 0x89,
    0x18, 0x75, 0x03, 0xB8, 0xAC, 0x08, 0x10, 0x21, 0x33, 0x90, 0xAC, 0x72, 0x82, 0xEB, 0x8A, 0x33,
    0xA0, 0xBA, 0x8B, 0xA8, 0x28, 0x77, 0x03, 0xEB, 0xBB, 0x19, 0x37, 0x13, 0x98, 0x99, 0x98, 0x9A,
    0x32, 0x12, 0x01, 0x99, 0xB9, 0xCD, 0x19, 0x44, 0x81, 0xB8, 0xCC, 0xBA, 0x28, 0x34, 0x03, 0xD9,
    0xBD, 0x50, 0x24, 0x98, 0xBB, 0x30, 0x92, 0xAC, 0x38, 0x23, 0xFA, 0x8B, 0x12, 0x53, 0x43, 0x13,
    0xEC, 0xBB, 0x28, 0x25, 0x80, 0x98, 0x88, 0x12, 0x33, 0x15, 0xE8, 0xAD, 0x28, 0x15, 0x90, 0x09,
    0x10, 0x98, 0xA9, 0x8B, 0x64, 0x13, 0xC9, 0xAD, 0x28, 0x22, 0x13, 0x00, 0xB9, 0xBC, 0x9B, 0x18,
    0x32, 0x11, 0x98, 0x71, 0x04, 0xB9, 0xFF, 0x09, 0x21, 0x21, 0x24, 0x81, 0xCA, 0x19, 0x81, 0x40,
    0x12, 0xB0, 0xAF, 0x18, 0x42, 0x81, 0x30, 0xA0, 0x19, 0x23, 0xD8, 0xDC, 0xCB, 0x1A, 0x54, 0x02,
    0x08, 0x00, 0x01, 0xB8, 0xDC, 0x9C, 0x21, 0x43, 0x43, 0x12, 0xD8, 0xBC, 0x08, 0x21, 0x00, 0x31,
    0x24, 0xEC, 0x8A, 0x22, 0x80, 0x30, 0x26, 0xC0, 0xAA, 0x00, 0xCC, 0x19, 0x54, 0x01, 0xBB, 0x2A,
    0x53, 0x91, 0xAC, 0x88, 0x28, 0x43, 0x34, 0xC9, 0x9B, 0x18, 0x12, 0x98, 0xEA, 0x8A, 0x46, 0x02,
    0x88, 0xCD, 0xAA, 0x38, 0x23, 0x30, 0x11, 0x20, 0x81, 0x90, 0xCF, 0xAA, 0x99, 0x43, 0x13, 0x22,
    0x31, 0xF9, 0x8F, 0x21, 0x90, 0xBA, 0x18, 0x12, 0x10, 0x21, 0x33, 0xF9, 0x8F, 0x11, 0x00, 0x99,
    0x41, 0x14, 0x80, 0x22, 0xB0, 0xBF, 0x40, 0x13, 0x90, 0x99, 0x80, 0xDB, 0x30, 0x27, 0x91, 0xBC,
    0x09, 0x01, 0x98, 0x1A, 0x82, 0x20, 0xFA, 0x8D, 0x21, 0x03, 0xCE, 0x08, 0x00, 0x82, 0x10, 0x02,
    0xCD, 0x8A, 0x20, 0x82, 0x88, 0xAA, 0x9B, 0x09, 0x32, 0x02, 0xBA, 0xBD, 0x99, 0x00, 0x00, 0x00
};

#define  STEPOUCH_WAV  2940

__align(2)
const U8 StepOuch_wav[2940] =
{
    0x52, 0x49, 0x46, 0x46, 0x74, 0x0B, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
    0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x44, 0xAC, 0x00, 0x00, 0x6D, 0x56, 0x00, 0x00,
    0x00, 0x04, 0x04, 0x00, 0x02, 0x00, 0xF9, 0x07, 0x66, 0x61, 0x63, 0x74, 0x04, 0x00, 0x00, 0x00,
    0x66, 0x16, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x40, 0x0B, 0x00, 0x00, 0xFA, 0xFF, 0x00, 0x00,
    0xF3, 0xBF, 0x35, 0xF8, 0x9F, 0x91, 0xBF, 0x20, 0x10, 0x37, 0x91, 0x2A, 0x34, 0xEA, 0x19, 0xC8,
    0x9D, 0x30, 0x34, 0xB8, 0x78, 0x83, 0xBA, 0x40, 0x47, 0x90, 0x10, 0xA0, 0x8C, 0x20, 0xEA, 0x0B,
    0x25, 0xDA, 0x18, 0x80, 0x51, 0x91, 0x3A, 0x37, 0xA8, 0x9B, 0x23, 0xD9, 0x1A, 0x81, 0x8B, 0x27,
    0x81, 0xAA, 0x49, 0x15, 0xCB, 0x20, 0x22, 0xB0, 0x1B, 0x26, 0xEA, 0x29, 0xA1, 0xAE, 0x41, 0x03,
    0x8B, 0x53, 0xA2, 0xBC, 0x40, 0x92, 0xAB, 0x30, 0x03, 0x99, 0x21, 0x33, 0xB2, 0x9F, 0x46, 0xC8,
    0x0A, 0x21, 0x89, 0x23, 0xE9, 0x0A, 0x03, 0xEA, 0x9B, 0x51, 0x82, 0xBB, 0x71, 0x82, 0xBB, 0x20,
    0x91, 0x50, 0x82, 0x8A, 0x52, 0x24, 0xB0, 0xCF, 0x28, 0x02, 0xBA, 0x18, 0x13, 0x31, 0x81, 0xAE,
    0x40, 0x91, 0x9C, 0x28, 0x32, 0xA2, 0xDF, 0x38, 0x04, 0xBC, 0x19, 0x11, 0x20, 0x80, 0x89, 0x21,
    0x53, 0xA2, 0xAD, 0x40, 0x83, 0xBC, 0x50, 0xA1, 0x9D, 0x80, 0x0A, 0x32, 0xFA, 0x0B, 0x42, 0x91,
    0xBA, 0x8A, 0x18, 0x20, 0x53, 0x04, 0x09, 0x46, 0x81, 0x28, 0x82, 0xBE, 0x99, 0x98, 0x41, 0xC1,
    0xCF, 0x28, 0x33, 0x80, 0xEA, 0x9B, 0x64, 0x82, 0xBC, 0x18, 0x33, 0x90, 0xBC, 0x19, 0x37, 0xC0,
    0x9C, 0x31, 0x04, 0xCA, 0x8A, 0x42, 0x82, 0x9A, 0x18, 0x11, 0x22, 0xA8, 0x9D, 0x20, 0xA1, 0xAE,
    0x89, 0x32, 0x93, 0xCE, 0x0B, 0x44, 0x91, 0xBB, 0x0B, 0x36, 0xA2, 0xAC, 0x30, 0x03, 0xDB, 0x18,
    0x32, 0xB8, 0xAE, 0x51, 0x03, 0xCB, 0x0B, 0x63, 0x82, 0xBC, 0x1A, 0x33, 0x81, 0xA9, 0x0A, 0x43,
    0x26, 0xB9, 0x40, 0x12, 0xB8, 0xBF, 0x20, 0x13, 0xE9, 0x9C, 0x33, 0x01, 0x98, 0x10, 0x90, 0x19,
    0x81, 0xBA, 0x18, 0xA0, 0x29, 0xA1, 0x09, 0x11, 0xFA, 0xFF, 0x28, 0x02, 0x00, 0x80, 0x89, 0x41,
    0x37, 0xA1, 0xBC, 0xAA, 0x31, 0x83, 0xBC, 0xCE, 0x0B, 0x32, 0x23, 0xCC, 0x28, 0x80, 0x28, 0x43,
    0x92, 0xAC, 0x31, 0xE8, 0x9C, 0x30, 0xB2, 0xEF, 0x38, 0x02, 0xAB, 0x18, 0x42, 0x24, 0xA9, 0x18,
    0x98, 0x73, 0xB3, 0x9F, 0x08, 0x88, 0x80, 0x08, 0x01, 0xDD, 0x49, 0x13, 0x80, 0xB8, 0x8B, 0x21,
    0x44, 0x23, 0xFA, 0x9A, 0x11, 0x12, 0x23, 0xEC, 0x9B, 0x18, 0x53, 0x92, 0x9A, 0x89, 0x89, 0x31,
    0x25, 0xB0, 0xCE, 0x8A, 0x31, 0x24, 0xDA, 0xAC, 0x31, 0x24, 0xB9, 0xAE, 0x40, 0x23, 0xB9, 0x09,
    0x88, 0x53, 0x82, 0xAB, 0x08, 0x80, 0x41, 0x84, 0xDD, 0x1A, 0x81, 0x19, 0x81, 0x9A, 0x42, 0xC1,
    0x8C, 0x44, 0x82, 0xDB, 0x19, 0x64, 0x82, 0xCB, 0x0A, 0x32, 0x24, 0xC8, 0xAC, 0x00, 0x11, 0x11,
    0xB8, 0xBD, 0x9A, 0x00, 0x32, 0x26, 0x81, 0x9B, 0x19, 0x47, 0x22, 0x80, 0xBA, 0x0A, 0x22, 0xA8,
    0xCD, 0x9C, 0x00, 0x20, 0x32, 0xA1, 0xDF, 0x1A, 0x25, 0x22, 0x15, 0xEB, 0x1A, 0x01, 0x30, 0x93,
    0xBD, 0x08, 0x0A, 0x42, 0xC8, 0x9B, 0x99, 0x30, 0x14, 0x08, 0x81, 0x9C, 0x53, 0x88, 0x73, 0xB2,
    0x9F, 0x22, 0xA8, 0x50, 0xA1, 0x9D, 0x21, 0x90, 0x20, 0x90, 0x48, 0x05, 0xA9, 0x89, 0x01, 0x22,
    0x13, 0xFB, 0x8D, 0x33, 0xA0, 0x18, 0x01, 0x20, 0xA2, 0xAE, 0x43, 0x01, 0x42, 0xD8, 0x1B, 0x26,
    0xB0, 0x8A, 0x90, 0x99, 0x40, 0x03, 0x9B, 0x12, 0xFF, 0x29, 0x04, 0xBA, 0x40, 0x92, 0x09, 0x12,
    0xBA, 0x72, 0x83, 0x9A, 0x80, 0xAB, 0x67, 0x03, 0xAC, 0x30, 0xA1, 0xAD, 0x42, 0x81, 0x19, 0x10,
    0x88, 0xC9, 0x0B, 0x54, 0x90, 0x9C, 0x22, 0xB0, 0x1C, 0x15, 0xD9, 0x89, 0x88, 0x19, 0x24, 0x82,
    0x08, 0x98, 0x1A, 0x46, 0xD8, 0x9D, 0x31, 0x82, 0x8A, 0x42, 0xD1, 0xAC, 0x89, 0x18, 0x80, 0x0A,
    0x34, 0x02, 0x22, 0xD9, 0x0A, 0x80, 0x09, 0x90, 0x40, 0xF1, 0x9F, 0x98, 0x8A, 0x02, 0xCC, 0x60,
    0x25, 0x98, 0x08, 0x12, 0xA9, 0x40, 0x24, 0x98, 0x08, 0xA1, 0xEB, 0xAB, 0xA9, 0xAC, 0x30, 0x23,
    0x80, 0xFA, 0x9B, 0x31, 0x01, 0x22, 0x20, 0x46, 0xA0, 0xAF, 0x09, 0x08, 0x23, 0xD8, 0xAB, 0x99,
    0xAB, 0x41, 0x00, 0x26, 0xC9, 0x30, 0xB1, 0x8E, 0x32, 0xC8, 0x1B, 0x57, 0xA1, 0xAD, 0x10, 0x22,
    0x90, 0x19, 0x92, 0xBD, 0x08, 0x32, 0x82, 0x08, 0x25, 0xB9, 0x18, 0xD9, 0x50, 0xB8, 0x60, 0x83,
    0x88, 0xCB, 0x39, 0x26, 0xB9, 0x29, 0x32, 0x04, 0xDE, 0x19, 0x11, 0x11, 0x10, 0x92, 0x8A, 0xA0,
    0xAA, 0xCC, 0x0B, 0x47, 0x91, 0x09, 0xDA, 0x19, 0x82, 0x99, 0x11, 0x34, 0x25, 0xB9, 0x2A, 0xD2,
    0xBE, 0x50, 0x25, 0x98, 0xAB, 0x50, 0x82, 0x9C, 0x10, 0xA9, 0x89, 0x21, 0x34, 0xC0, 0x8D, 0x33,
    0xB9, 0xAC, 0x48, 0x26, 0xC8, 0x8B, 0x12, 0x90, 0x98, 0x9A, 0x20, 0xFC, 0x48, 0x04, 0xBA, 0x20,
    0x32, 0x04, 0xBA, 0x63, 0xF8, 0x9E, 0x30, 0x12, 0x00, 0x89, 0x80, 0xBA, 0xAC, 0x62, 0x83, 0xBB,
    0x89, 0x42, 0xB1, 0x9D, 0x10, 0x90, 0x2A, 0x46, 0x92, 0x9A, 0x21, 0x99, 0xBA, 0xBF, 0x38, 0x14,
    0x9A, 0x51, 0x24, 0xC9, 0x19, 0x82, 0xAA, 0xB8, 0x9B, 0x52, 0x04, 0xBB, 0x29, 0x81, 0x5B, 0x37,
    0xB8, 0x9A, 0x00, 0xC9, 0x39, 0x05, 0x88, 0x01, 0xBA, 0x72, 0x85, 0xBC, 0x0A, 0x23, 0xA8, 0x41,
    0x81, 0x89, 0xC9, 0x0C, 0x35, 0x98, 0xA9, 0x29, 0x04, 0x9A, 0x90, 0x0C, 0x37, 0xA9, 0x0A, 0x81,
    0xCC, 0x29, 0x47, 0x91, 0x0A, 0x12, 0x80, 0xB8, 0xAE, 0xBB, 0x38, 0x34, 0x42, 0x22, 0x11, 0xA8,
    0xBA, 0x50, 0x91, 0xDC, 0xAE, 0x40, 0x23, 0x22, 0xD9, 0x8B, 0x21, 0x90, 0x8A, 0x43, 0xA1, 0x9C,
    0x00, 0x32, 0x02, 0x44, 0xE9, 0x9B, 0xBC, 0x30, 0x25, 0xE9, 0x28, 0x12, 0x00, 0x00, 0x12, 0x08,
    0xB1, 0xFF, 0x1A, 0x12, 0xBA, 0x68, 0x25, 0x98, 0x0B, 0x24, 0xDA, 0x9A, 0x21, 0x81, 0x99, 0xA8,
    0x8A, 0x67, 0x02, 0xA8, 0x19, 0x82, 0xA9, 0xAC, 0x09, 0x01, 0x31, 0x24, 0xDD, 0x28, 0x35, 0xA1,
    0xAB, 0x99, 0x10, 0x13, 0xD9, 0x2B, 0x47, 0x82, 0xCB, 0x8A, 0x31, 0x23, 0xB0, 0xCF, 0x09, 0x43,
    0x92, 0x9A, 0x21, 0x82, 0xDB, 0x08, 0xC9, 0x38, 0x27, 0xB8, 0x8B, 0x88, 0x52, 0x13, 0xA8, 0x0A,
    0xB8, 0x8C, 0xD8, 0x0B, 0x64, 0x92, 0x8A, 0xC8, 0x8C, 0x44, 0x01, 0xCA, 0x18, 0x03, 0xA8, 0x8B,
    0x53, 0x02, 0xDD, 0x39, 0x92, 0x8B, 0x11, 0x33, 0xE9, 0x8B, 0x43, 0xA1, 0x2A, 0x04, 0xBA, 0xBC,
    0x72, 0x85, 0xBA, 0x0B, 0x11, 0xB0, 0x8B, 0x32, 0x30, 0x17, 0xA8, 0xAC, 0x10, 0x40, 0xA1, 0x9D,
    0x01, 0xDB, 0x29, 0x15, 0xBA, 0x38, 0xE1, 0x1C, 0x24, 0xA8, 0x19, 0xF8, 0x1B, 0x24, 0x80, 0x18,
    0x11, 0x18, 0xEA, 0x8B, 0x99, 0x21, 0x32, 0xA0, 0x09, 0xCF, 0x89, 0x29, 0x37, 0x80, 0x40, 0xB2,
    0x9F, 0x02, 0xA9, 0x19, 0x91, 0x2A, 0x15, 0xDA, 0x9D, 0x42, 0x02, 0x99, 0x08, 0xAC, 0x18, 0x31,
    0x84, 0xA9, 0x59, 0x05, 0x9B, 0xC9, 0x8A, 0x31, 0x05, 0x9B, 0xC9, 0x0C, 0x42, 0x14, 0xAA, 0x62,
    0x01, 0xCB, 0x28, 0x82, 0xBB, 0x38, 0x92, 0x1B, 0xB4, 0xFF, 0x31, 0x13, 0x81, 0x08, 0xC9, 0x8C,
    0x32, 0x83, 0x0A, 0x43, 0x01, 0xEC, 0x9B, 0xAB, 0x71, 0x33, 0x14, 0xEA, 0x0A, 0x11, 0x99, 0x10,
    0x12, 0x82, 0x0B, 0x94, 0xDF, 0x20, 0x14, 0xA0, 0x38, 0x13, 0xCC, 0x29, 0xA1, 0xAD, 0x21, 0x81,
    0xCA, 0x29, 0x92, 0x60, 0x14, 0xA0, 0x19, 0x24, 0x11, 0xB8, 0xAE, 0xA9, 0x1B, 0xDD, 0x44, 0x00,
    0x1B, 0x23, 0x51, 0x92, 0x0B, 0x63, 0x83, 0xAF, 0x40, 0x34, 0xA0, 0x08, 0xE9, 0x8A, 0xA0, 0x1A,
    0x22, 0x52, 0x91, 0x8A, 0x80, 0x43, 0xC9, 0x1A, 0x25, 0xC8, 0x0A, 0x81, 0xA9, 0xAB, 0xBB, 0x71,
    0x25, 0x01, 0x18, 0xD9, 0x29, 0x92, 0x8C, 0x22, 0xF9, 0x9B, 0x63, 0xA2, 0xAA, 0xB8, 0x19, 0x12,
    0x66, 0x03, 0xC9, 0xAC, 0x28, 0x80, 0x28, 0x13, 0xD9, 0x2A, 0x35, 0x91, 0xEB, 0x09, 0xB8, 0x1C,
    0x47, 0x81, 0xCB, 0x19, 0x80, 0x09, 0x21, 0x90, 0xBC, 0x50, 0x33, 0xA1, 0x9C, 0x00, 0xA9, 0x28,
    0x53, 0x83, 0xAC, 0x90, 0xAF, 0x08, 0x11, 0xF8, 0x8C, 0x62, 0x02, 0x9B, 0x10, 0x18, 0x32, 0x80,
    0xFB, 0x2B, 0x25, 0x81, 0xBA, 0xDB, 0x8B, 0x32, 0x21, 0x33, 0x14, 0xDE, 0x09, 0x13, 0x12, 0xA0,
    0x9A, 0x18, 0x32, 0x12, 0xC9, 0xCC, 0xCD, 0x29, 0x33, 0x33, 0x32, 0xD1, 0xBF, 0x19, 0x13, 0x00,
    0x98, 0x61, 0x82, 0xA9, 0xEB, 0x29, 0x82, 0x9A, 0x10, 0x21, 0x34, 0x16, 0xEC, 0x89, 0x01, 0x11,
    0x12, 0xA9, 0x88, 0x8A, 0x45, 0xC8, 0x9A, 0x89, 0x52, 0x81, 0x51, 0x01, 0x80, 0xDF, 0x29, 0x02,
    0x08, 0x22, 0xA8, 0xAE, 0x18, 0x21, 0x91, 0x8A, 0x18, 0x36, 0xCB, 0x30, 0x90, 0x32, 0xFA, 0x8D,
    0x20, 0x01, 0x10, 0x05, 0xBD, 0x28, 0xA1, 0x09, 0x90, 0x99, 0x64, 0x82, 0x29, 0x93, 0xAE, 0x10,
    0x12, 0xAA, 0x64, 0xB0, 0x8A, 0x98, 0x28, 0x83, 0xAD, 0x21, 0xF9, 0x8B, 0x52, 0x12, 0x10, 0xC9,
    0x0D, 0x45, 0xA0, 0x8B, 0x01, 0x98, 0x98, 0x28, 0x34, 0xB0, 0x8E, 0x01, 0xA9, 0x19, 0x13, 0x90,
    0x22, 0xE9, 0x59, 0x37, 0xD8, 0x9A, 0x99, 0x21, 0x13, 0xAA, 0x50, 0x04, 0xCB, 0x09, 0xA8, 0x41,
    0x23, 0xDA, 0x29, 0x03, 0x80, 0x8A, 0x22, 0x92, 0xCF, 0x29, 0xA1, 0x09, 0x21, 0x64, 0xA2, 0x9D,
    0x88, 0x52, 0x81, 0xB9, 0x8B, 0x12, 0x08, 0xF9, 0x1A, 0x26, 0x01, 0x90, 0xC9, 0xBD, 0x48, 0x04,
    0x09, 0x81, 0x08, 0x01, 0x52, 0xB1, 0x9E, 0x11, 0x01, 0x98, 0xB9, 0x8D, 0x44, 0x02, 0x98, 0x9A,
    0xD8, 0x8B, 0x81, 0x18, 0x54, 0x24, 0xB9, 0x29, 0x15, 0xAA, 0x19, 0xA1, 0xCF, 0x10, 0x11, 0x54,
    0xB0, 0xAB, 0x18, 0x25, 0xA8, 0x9A, 0x89, 0x18, 0x47, 0xC8, 0x1A, 0x32, 0xB0, 0x8D, 0x13, 0xFB,
    0x1A, 0x33, 0x12, 0x81, 0xCC, 0x1A, 0x33, 0xA8, 0x39, 0x84, 0xAB, 0x51, 0xA3, 0xCF, 0x30, 0x02,
    0xE9, 0x8A, 0x22, 0x92, 0x1A, 0x13, 0x80, 0x08, 0xE8, 0x2A, 0x05, 0xCB, 0x19, 0x22, 0xA2, 0xBF,
    0x31, 0x90, 0x30, 0x45, 0xB0, 0xAD, 0x29, 0x27, 0xA8, 0x9A, 0x10, 0x80, 0xC9, 0xAC, 0x41, 0x03,
    0xC9, 0x0B, 0x44, 0xD8, 0x09, 0x33, 0xA0, 0x29, 0x04, 0x89, 0x08, 0x44, 0xC0, 0xAE, 0x09, 0x22,
    0xB2, 0xBF, 0x09, 0x20, 0x42, 0x91, 0x8A, 0x32, 0xA2, 0x0E, 0x35, 0xC8, 0x9A, 0x00, 0x98, 0x2A,
    0x26, 0xDA, 0x8A, 0x88, 0x52, 0x92, 0x9A, 0x80, 0xBC, 0x72, 0x12, 0xB8, 0x1A, 0x91, 0x3A, 0x47,
    0x90, 0xAD, 0x20, 0xB8, 0x1A, 0x20, 0x12, 0xC9, 0xAA, 0x29, 0x17, 0x29, 0x93, 0xBC, 0xAB, 0x22,
    0x9A, 0x55, 0x91, 0x39, 0x07, 0x8B, 0x03, 0x1A, 0xB1, 0x8D, 0xD0, 0x5B, 0x17, 0xBB, 0x20, 0x90,
    0x98, 0x80, 0xBB, 0x88, 0x52, 0xC1, 0x2A, 0x25, 0xA8, 0x50, 0xC0, 0x0C, 0x12, 0x11, 0x01, 0x09,
    0xC0, 0x7A, 0x95, 0xAE, 0x31, 0x82, 0x08, 0x90, 0x8B, 0xBA, 0x2A, 0xB8, 0x0B, 0x32, 0x27, 0x12,
    0xF9, 0x0D, 0x24, 0x81, 0xAA, 0x20, 0x01, 0x12, 0x01, 0xC0, 0x0D, 0x16, 0x88, 0x90, 0xAF, 0x08,
    0x80, 0xBA, 0x28, 0x08, 0x77, 0x01, 0x88, 0xBB, 0x29, 0x15, 0x98, 0xAA, 0xAA, 0x1A, 0x33, 0x56,
    0x02, 0x01, 0xBB, 0x89, 0x01, 0xB8, 0x52, 0xB1, 0x8E, 0x14, 0xAD, 0x43, 0x91, 0x08, 0x98, 0xBD,
    0x08, 0x52, 0xA2, 0xAE, 0x10, 0x21, 0x01, 0x29, 0x25, 0x89, 0xA8, 0x70, 0xB2, 0x19, 0xD9, 0x1A,
    0x80, 0x01, 0x18, 0x10, 0xB0, 0x79, 0x96, 0xBC, 0x88, 0x00, 0x01, 0x21, 0x24, 0xA0, 0xED, 0x0A,
    0x22, 0x21, 0xA8, 0x10, 0x00, 0x04, 0x29, 0xE2, 0x4A, 0x05, 0x9B, 0x80, 0xAB, 0x51, 0x04, 0xCA,
    0xCC, 0x89, 0x33, 0x90, 0x71, 0x82, 0xAA, 0x8C, 0x23, 0x99, 0x00, 0xAA, 0x72, 0x85, 0x18, 0xB0,
    0x3B, 0x03, 0xCB, 0xA9, 0xBE, 0x11, 0x10, 0xB3, 0x9F, 0x10, 0x53, 0xB1, 0x9A, 0x24, 0x9A, 0x34,
    0x00, 0xD9, 0x0B, 0x01, 0xA0, 0x8A, 0x19, 0x67, 0x99, 0x30, 0xB1, 0xBC, 0x99, 0x1A, 0xA1, 0x1A,
    0xBC, 0x64, 0x21, 0x25, 0xA8, 0xB9, 0xBB, 0x8A, 0x52, 0x13, 0x00, 0xDB, 0x71, 0x93, 0xAD, 0x20,
    0x81, 0x8A, 0x34, 0xB9, 0x9A, 0x99, 0x33, 0x11, 0x09, 0xF9, 0x5B, 0x85, 0x9C, 0x31, 0x03, 0xAD,
    0x21, 0x82, 0x19, 0x81, 0xBD, 0xBA, 0x41, 0x93, 0x71, 0x92, 0xAE, 0x31, 0x92, 0x1A, 0x92, 0x0A,
    0xB8, 0x60, 0x23, 0x88, 0x53, 0xB8, 0x0C, 0x01, 0xBC, 0x42, 0xA8, 0x0B, 0x77, 0x90, 0xAA, 0x8A,
    0x10, 0x22, 0xBA, 0x55, 0xA0, 0x98, 0x9A, 0x30, 0x94, 0x8D, 0x22, 0x02, 0xC9, 0x0A, 0x33, 0x01,
    0x13, 0x8B, 0xF1, 0x0D, 0x14, 0xEB, 0x19, 0x13, 0x20, 0xC1, 0xAD, 0x51, 0x05, 0x9A, 0x82, 0x9B,
    0x23, 0xDA, 0xAC, 0x52, 0x22, 0xC0, 0x9C, 0x08, 0x11, 0xB9, 0x38, 0x02, 0x89, 0x31, 0x53, 0xD1,
    0x8C, 0x01, 0xAA, 0x72, 0x12, 0x10, 0x42, 0xF8, 0x8C, 0x12, 0x89, 0x01, 0xB8, 0x0A, 0x81, 0xCD,
    0x49, 0x13, 0xCA, 0x8A, 0x10, 0x00, 0x11, 0x20, 0x53, 0x04, 0xCE, 0x20, 0x81, 0x99, 0xB9, 0xBC,
    0x60, 0x02, 0x22, 0x9A, 0x37, 0xFA, 0x9A, 0x80, 0x42, 0x81, 0x99, 0x99, 0x19, 0x12, 0x21, 0x92,
    0x1B, 0xD9, 0x75, 0x90, 0x53, 0xC8, 0x9A, 0x38, 0x90, 0x09, 0x32, 0xA3, 0xCF, 0x9A, 0x20, 0x00,
    0x25, 0xB8, 0x31, 0xB0, 0x9D, 0xBA, 0x58, 0x24, 0x08, 0x89, 0x40, 0x92, 0xAB, 0x40, 0x17, 0xB8,
    0x39, 0x15, 0x29, 0x06, 0xBA, 0xBC, 0x20, 0xA0, 0x39, 0x05, 0xAA, 0x02, 0x8C, 0xA0, 0x09, 0x29,
    0x67, 0x98, 0x30, 0x93, 0xAF, 0x02, 0x9D, 0x02, 0x20, 0x36, 0xD8, 0x8C, 0x10, 0x03, 0x8A, 0x22,
    0xAA, 0x00, 0x11, 0x10, 0x23, 0xE8, 0xBC, 0x89, 0xEB, 0x4A, 0x15, 0x08, 0x91, 0x89, 0xDB, 0x88,
    0x31, 0x13, 0x25, 0xCE, 0x20, 0xB8, 0x19, 0x44, 0x21, 0xA2, 0xAF, 0x00, 0x01, 0x98, 0x30, 0xA1,
    0x9F, 0x02, 0x08, 0x11, 0x35, 0xEB, 0x0A, 0x98, 0xAA, 0x52, 0x81, 0x8A, 0x32, 0x02, 0xB1, 0xFF,
    0x30, 0x91, 0xCB, 0x8A, 0x33, 0x22, 0x81, 0x09, 0x73, 0xB3, 0x9B, 0xBB, 0x80, 0x8E, 0xA2, 0x68,
    0xC0, 0x18, 0x18, 0xA2, 0x5A, 0xA2, 0x32, 0xAE, 0xB8, 0x0C, 0x14, 0x04, 0x8D, 0x32, 0x21, 0xC1,
    0x0B, 0x13, 0xFB, 0xAB, 0x00, 0x32, 0x44, 0xC0, 0x0C, 0x23, 0xB8, 0x08, 0x9C, 0x12, 0x1A, 0xE9,
    0x50, 0xB8, 0x19, 0x18, 0xB2, 0x1D, 0x52, 0x26, 0xCB, 0xA9, 0x0A, 0x12, 0x32, 0xB8, 0x61, 0x98,
    0x21, 0x98, 0xAA, 0x39, 0x98, 0x11, 0xBF, 0x64, 0x91, 0xBD, 0x21, 0xB1, 0x48, 0x81, 0x20, 0x98,
    0x12, 0xBD, 0x02, 0x9B, 0x02, 0xB0, 0xDF, 0x31, 0x64, 0xA1, 0x8B, 0xA8, 0x31, 0x90, 0x08, 0x61,
    0xA2, 0x9D, 0x20, 0xA9, 0x19, 0x24, 0xAA, 0x20, 0x58, 0x26, 0xA0, 0xCF, 0x10, 0x88, 0x22, 0x80,
    0x89, 0x10, 0x00, 0xFB, 0x29, 0x92, 0x00, 0xBA, 0x08, 0x52, 0x74, 0x04, 0x9D, 0x0C, 0x48, 0x00,
    0x8A, 0x98, 0x01, 0x00, 0x9A, 0x73, 0x91, 0xAA, 0x08, 0xA9, 0x31, 0x91, 0x28, 0x84, 0x49, 0x27,
    0x12, 0xDC, 0x99, 0x18, 0x02, 0x09, 0xB8, 0x32, 0xA8, 0xC9, 0x0C, 0x22, 0x01, 0xBF, 0x48, 0x03,
    0x18, 0x45, 0x03, 0xCB, 0xBB, 0x5A, 0x16, 0xBC, 0x08, 0x22, 0x90, 0x08, 0x88, 0xB9, 0x70, 0x03,
    0xA8, 0x8C, 0x33, 0x10, 0x84, 0xBE, 0x18, 0x80, 0x18, 0x34, 0x81, 0x59, 0xD3, 0x0E, 0x02, 0x88,
    0xA9, 0xBB, 0x40, 0x03, 0x91, 0x9F, 0x35, 0xA0, 0x98, 0x09, 0x92, 0xAC, 0x51, 0x23, 0x98, 0x41,
    0xB8, 0x9A, 0x4A, 0x95, 0xAE, 0x89, 0x88, 0x1A, 0x05, 0xAA, 0xC9, 0x4A, 0x05, 0x80, 0x11, 0x20,
    0x15, 0xCA, 0x00, 0xA9, 0x00, 0xDB, 0x48, 0x23, 0x92, 0x9B, 0x82, 0x8D, 0x14, 0xDA, 0x09, 0x99,
    0x31, 0x80, 0x74, 0x16, 0xA9, 0x18, 0xC8, 0x2A, 0x82, 0xBB, 0x8B, 0x40, 0x84, 0x9B, 0xA1, 0x8B,
    0x91, 0xCB, 0xDC, 0x1A, 0x46, 0x81, 0x18, 0x22, 0xD8, 0x29, 0x02, 0x21, 0xAA, 0xDA, 0x3A, 0x27,
    0xB0, 0xAF, 0x21, 0x08, 0xA2, 0x0D, 0x03, 0xBD, 0x28, 0x32, 0x01, 0x20, 0x04, 0xCE, 0x08, 0x20,
    0x23, 0xBC, 0x31, 0x02, 0x13, 0x71, 0xA4, 0xCF, 0x8A, 0x18, 0x11, 0x98, 0x41, 0x14, 0xC9, 0x19,
    0x13, 0xA0, 0xBC, 0x08, 0x99, 0x41, 0x35, 0xA0, 0x00, 0xB0, 0xDC, 0x8A, 0x88, 0x41, 0x02, 0xAC,
    0x60, 0x04, 0xAB, 0x18, 0x80, 0x98, 0x8B, 0x73, 0x92, 0x0B, 0xB2, 0xBF, 0x40, 0x24, 0xA0, 0x9B,
    0x80, 0x08, 0x82, 0x1A, 0x14, 0x33, 0xF8, 0x8C, 0x33, 0xB0, 0xB9, 0xDF, 0x41, 0x80, 0x31, 0x44,
    0xA0, 0xCC, 0x89, 0x80, 0x08, 0x12, 0x11, 0xB0, 0xAB, 0x31, 0x01, 0xB0, 0xBE, 0xCB, 0x78, 0x34,
    0x02, 0xF9, 0xBC, 0x19, 0x13, 0x88, 0x53, 0x02, 0x81, 0x89, 0x60, 0x83, 0xDB, 0x09, 0x10, 0x08,
    0x31, 0x14, 0xD9, 0xBE, 0x19, 0x35, 0xB0, 0x29, 0x14, 0xCB, 0x19, 0x04, 0xCB, 0x38, 0x13, 0x10,
    0x11, 0xFA, 0x0B, 0x98, 0x99, 0x8B, 0x63, 0x22, 0x10, 0x55, 0xF8, 0x9C, 0x40, 0x82, 0x8B, 0x31,
    0xA1, 0x89, 0x91, 0x38, 0x12, 0x31, 0xFB, 0x1A, 0x00, 0x42, 0x13, 0xBA, 0xDC, 0x39, 0x25, 0x81,
    0xCE, 0x19, 0x02, 0x00, 0x63, 0x91, 0xAB, 0x88, 0xAB, 0x55, 0x81, 0x98, 0x9A, 0x00, 0xB8, 0x7A,
    0x94, 0xAC, 0x98, 0x31, 0x01, 0x31, 0x23, 0xCF, 0x09, 0x89, 0x80, 0x20, 0x92, 0xEE, 0x0C, 0x24,
    0x98, 0x11, 0x11, 0xA8, 0x18, 0x43, 0xC9, 0x28, 0xCA, 0x73, 0xB8, 0x89, 0x22, 0x90, 0x61, 0x02,
    0xCD, 0x0A, 0x98, 0x33, 0x98, 0x73, 0x82, 0x88, 0x88, 0xBB, 0xCA, 0x49, 0x94, 0xBE, 0x20, 0x24,
    0x12, 0xB9, 0x18, 0xC8, 0x9C, 0x09, 0x90, 0xBA, 0x89, 0x44, 0x91, 0x71, 0x06, 0xA9, 0x89, 0x18,
    0x01, 0xDB, 0x19, 0x32, 0x35, 0xA8, 0x8A, 0x21, 0xD9, 0xAB, 0x10, 0xB8, 0x58, 0x04, 0xAA, 0x60,
    0x23, 0x00, 0xC8, 0x19, 0xC9, 0x99, 0x58, 0x57, 0xC0, 0x9C, 0x10, 0x10, 0x80, 0x21, 0x10, 0x91,
    0x0A, 0xC1, 0x9D, 0x0A, 0x17, 0x99, 0x20, 0x43, 0xD9, 0x09, 0x88, 0x00, 0x80, 0xBA, 0x48, 0x02,
    0x31, 0xE8, 0x29, 0x13, 0xCB, 0xDC, 0x8B, 0x52, 0x25, 0xB8, 0x9C, 0x32, 0x80, 0x88, 0x72, 0x94,
    0xAE, 0x41, 0xA0, 0x38, 0xA3, 0x9D, 0x08, 0x08, 0x88, 0x41, 0x24, 0x01, 0xBA, 0xAC, 0x08, 0xEA,
    0x68, 0x02, 0x88, 0x98, 0xAA, 0x31, 0xF0, 0x0B, 0x23, 0x81, 0x48, 0xB1, 0x9B, 0xA8, 0x0B, 0x54,
    0x03, 0x01, 0xBA, 0x90, 0x1C, 0x96, 0x9D, 0x01, 0xB8, 0x1C, 0x45, 0x54, 0xA2, 0xAD, 0x80, 0xA0,
    0x18, 0x82, 0x21, 0x92, 0xAA, 0x8A, 0x53, 0x35, 0xC8, 0xCD, 0x8A, 0x01, 0x89, 0x30, 0x27, 0xA8,
    0xAA, 0xAB, 0x28, 0xA3, 0x0E, 0x25, 0x80, 0x21, 0xB0, 0x9E, 0x98, 0x88, 0x11, 0x23, 0x81, 0x9A,
    0x53, 0xFB, 0x9D, 0x18, 0x45, 0x90, 0xAA, 0x28, 0x33, 0x02, 0xAB, 0x80, 0xBB, 0xDE, 0x39, 0x14,
    0x52, 0xA2, 0xBF, 0x08, 0x22, 0x12, 0xC8, 0xBB, 0x51, 0x92, 0x8A, 0x02, 0x99, 0xBC, 0x18, 0xF9,
    0x0A, 0x23, 0x28, 0x27, 0xA9, 0x38, 0x91, 0xBB, 0xA9, 0x0A, 0x37, 0x13, 0xE9, 0x9A, 0x20, 0xD1,
    0xAD, 0x10, 0x53, 0x91, 0x98, 0x18, 0x80, 0x18, 0xD9, 0x28, 0x24, 0xA0, 0xAE, 0x38, 0x37, 0x11,
    0xB0, 0xAF, 0x29, 0x33, 0x82, 0xDA, 0x9C, 0x32, 0x14, 0x98, 0x98, 0xBA, 0x8B, 0xA1, 0xAF, 0x51,
    0x23, 0x08, 0x90, 0xAB, 0x43, 0x90, 0x18, 0xA1, 0x8E, 0x26, 0xB9, 0x29, 0x25, 0xBA, 0x00, 0xCE,
    0x29, 0x13, 0x98, 0x20, 0x12, 0x11, 0x81, 0xDF, 0x19, 0x12, 0x10, 0x01, 0x99, 0x73, 0x16, 0x00,
    0xB8, 0x9E, 0x20, 0x22, 0x81, 0xDC, 0x9B, 0x18, 0x24, 0x98, 0x31, 0x83, 0x8A, 0xD8, 0x1C, 0x36,
    0x02, 0xAA, 0xAB, 0x8B, 0x47, 0x90, 0x0A, 0x91, 0xAC, 0x32, 0xD0, 0x0B, 0x37, 0xB8, 0x1A, 0xA0,
    0x1B, 0x15, 0xBA, 0x4A, 0x26, 0x88, 0x09, 0x98, 0xAB, 0x18, 0x00, 0x11, 0x44, 0x02, 0x80, 0x19,
    0x95, 0xDF, 0x31, 0x82, 0x89, 0x08, 0x00, 0xE8, 0x8C, 0x02, 0x99, 0x63, 0x23, 0x90, 0xBB, 0x48,
    0x37, 0x91, 0xCC, 0x0B, 0x22, 0x01, 0xCA, 0x09, 0x82, 0xBD, 0x41, 0x14, 0x98, 0x80, 0xC9, 0x0B,
    0x04, 0x19, 0x35, 0xFB, 0x9A, 0x52, 0x12, 0xB8, 0x8A, 0x22, 0xC8, 0x0B, 0x13, 0xBB, 0x12, 0xCA,
    0xCC, 0x8B, 0x08, 0x61, 0x35, 0x02, 0xC9, 0x0A, 0x03, 0xAB, 0x53, 0x12, 0x88, 0xA8, 0x0C, 0x03,
    0xDD, 0x8B, 0x31, 0x53, 0xC2, 0xAF, 0x52, 0x82, 0xCA, 0x8A, 0x18, 0x11, 0x21, 0x81, 0x8A, 0x90,
    0x08, 0xFA, 0x9C, 0x30, 0x15, 0xA9, 0x19, 0x21, 0x11, 0x01, 0xCD, 0x29, 0x13, 0xCA, 0x38, 0xB2,
    0xBB, 0x59, 0x95, 0xBD, 0xAB, 0x21, 0xA0, 0x58, 0x25, 0xA0, 0x0A, 0x81, 0x98, 0x89, 0x54, 0x02,
    0xDA, 0x1A, 0x13, 0xA9, 0xA9, 0x8A, 0x08, 0xA3, 0x9E, 0x53, 0x81, 0x89, 0x11, 0x99, 0x11, 0x80,
    0x28, 0x03, 0xBC, 0x18, 0x91, 0xCC, 0x18, 0x23, 0x00, 0x02, 0x00, 0x00
};

/******************************************AUDIO************************************/
//#define __MMI_TRUEMAN_DEBUG__

#ifdef __MMI_TRUEMAN_DEBUG__
U32 g_mmi_trueman_start_time;
U32 g_mmi_trueman_end_time;
U32 g_mmi_trueman_duration;
#define MMI_GAME_GET_START_TIME(_trace_) \
    do{\
        kal_get_time(&g_mmi_trueman_start_time);\
    }while(0)
#define MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE(_trace_)\
    do{\
        kal_get_time(&g_mmi_trueman_end_time);\
        g_mmi_trueman_duration = kal_ticks_to_milli_secs(g_mmi_trueman_end_time - g_mmi_trueman_start_time);\
        kal_prompt_trace(MOD_MMI,_trace_, g_mmi_trueman_duration,__LINE__);\
    }while(0)
#else
#define MMI_GAME_GET_START_TIME(_trace_)
#define MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE(_trace_)
#endif

/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_enter_gfx
 * DESCRIPTION
 *  Set Game Framework (GFX) Parameter
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
/* keep this game old naming style */
void mmi_gx_trueman_enter_gfx(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Game menu */
    GFX.game_data.game_img_id = 0;//IMG_ID_GX_TRUEMAN_GAME_ICON;  /* game icon img ID */
#if defined(__MMI_GAME_TRUEMAN__)
    GFX.game_data.game_str_id = STR_ID_GX_TRUEMAN_GAME_NAME;  /* game name string ID */
#endif
    GFX.game_data.menu_resume_str_id = STR_GAME_RESUME;     /* "Resume" string ID */
    GFX.game_data.menu_new_str_id = STR_GAME_NEW;           /* "New Game" string ID */
    GFX.game_data.menu_level_str_id = STR_GAME_LEVEL;       /* "Game Level" string ID */
    GFX.game_data.menu_grade_str_id = STR_GAME_GRADE;       /* "Best Grade" string ID */
    GFX.game_data.menu_help_str_id = STR_GLOBAL_HELP;         /* "Game Help" string ID */

    /* level / grade */
    GFX.game_data.level_count = 3;  /* how many levels */
    GFX.game_data.level_str_id_list[0] = STR_ID_GX_TRUEMAN_LEVEL_EASY;    /* level string ID */
    GFX.game_data.level_str_id_list[1] = STR_ID_GX_TRUEMAN_LEVEL_NORMAL;  /* level string ID */
    GFX.game_data.level_str_id_list[2] = STR_ID_GX_TRUEMAN_LEVEL_HARD;    /* level string ID */

    /* add slot in NVRAMEnum.h */
    GFX.game_data.grade_nvram_id_list[0] = NVRAM_GX_TRUEMAN_EASY_SCORE;   /* grade slot in NVRAM (short) */
    GFX.game_data.grade_nvram_id_list[1] = NVRAM_GX_TRUEMAN_NORMAL_SCORE; /* grade slot in NVRAM */
    GFX.game_data.grade_nvram_id_list[2] = NVRAM_GX_TRUEMAN_HARD_SCORE;   /* grade slot in NVRAM */
    GFX.game_data.level_nvram_id = NVRAM_GX_TRUEMAN_LEVEL;    /* current lvl idnex  in NVRAM (byte) */

    /* help */
#if defined(__MMI_GAME_TRUEMAN__)
    GFX.game_data.help_str_id = STR_ID_GX_TRUEMAN_HELP_DESCRIPTION;       /* help desciption string id */
#endif

    /* misc */
    GFX.game_data.grade_value_ptr = (S16*) (&g_gx_trueman_context.game_grade);   /* current level's grade (S16*) */
    GFX.game_data.level_index_ptr = (U8*) (&g_gx_trueman_context.game_level);    /* ptr to current level index (U8*) */
    GFX.game_data.is_new_game = (BOOL*) (&g_gx_trueman_context.is_new_game);     /* ptr to new game flag (BOOL*) */

    /* function ptr */
    GFX.game_data.best_grade_func_ptr = mmi_gx_trueman_calc_best_grade;   /* function to calculate best grade */
    GFX.game_data.enter_game_func_ptr = mmi_gx_trueman_enter_game;        /* function to enter new game */
    GFX.game_data.exit_game_func_ptr = mmi_gx_trueman_exit_game;  /* function to exit game */
    GFX.game_data.draw_gameover_func_ptr = mmi_gx_trueman_draw_gameover;  /* function to draw gameover screen */

    /* some flags */
    GFX.game_data.is_keypad_audio_enable = FALSE;   /* play keypad tone or not */

    mmi_gfx_entry_menu_screen();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_calc_best_grade
 * DESCRIPTION
 *  Calculate new best grade [Callback required by GFX]
 * PARAMETERS
 *  old_grade       [IN]
 *  new_grade       [IN]
 * RETURNS
 *  S16
 *****************************************************************************/
S16 mmi_gx_trueman_calc_best_grade(S16 old_grade, S16 new_grade)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* compare the best grade and return it */
    if (new_grade > old_grade)
    {
        return new_grade;
    }
    else
    {
        return old_grade;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_gameover
 * DESCRIPTION
 *  Draw Gameover Screen [Callback required by GFX]
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_gameover(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    GFX_PLAY_AUDIO_GAMEOVER();
    gdi_draw_solid_rect(0, 0, MMI_GX_TRUEMAN_LCD_WIDTH - 1, MMI_GX_TRUEMAN_LCD_HEIGHT - 1, MMI_GX_TRUEMAN_GAMEOVER_BG_COLOR);

    /* call this function to draw standard gameover screen */
    mmi_gfx_draw_gameover_screen(
        NULL,
        NULL,
        IMG_ID_GX_TRUEMAN_ROLE_DYING,
        g_gx_trueman_context.game_grade);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_enter_game
 * DESCRIPTION
 *  Enter Game [Callback required by GFX]
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_enter_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_gx_trueman_context.is_new_game == TRUE)
    {
        mmi_gx_trueman_init_game();   /* is new game, otherwise resume game */
    }

#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
    mmi_trueman_language_index = g_mmi_game_current_language_index;
    mmi_gfx_check_image_get_valid_language(
        &mmi_trueman_language_index,
        IMG_ID_GX_TRUEMAN_SCORE_LANGUAGE0,
        MMI_TRUEMAN_STRING_COUNT);
#endif

    g_gx_trueman_context.is_left_pressed = FALSE;
    g_gx_trueman_context.is_right_pressed = FALSE;
    g_gx_trueman_context.is_flying_key_pressed = FALSE;

#if defined(GDI_USING_LAYER)
    gdi_layer_multi_layer_enable();
    gdi_layer_get_base_handle(&g_gx_trueman_context.background);
    //gdi_push_and_set_alpha_blending_source_layer(g_gx_trueman_context.background);

    gdi_layer_create(0, 0, MMI_GX_TRUEMAN_LCD_WIDTH, MMI_GX_TRUEMAN_LCD_HEIGHT, &g_gx_trueman_context.foreground);
    gdi_layer_push_and_set_active(g_gx_trueman_context.foreground);
    gdi_layer_set_source_key(TRUE, GDI_COLOR_TRANSPARENT);
    gdi_layer_clear_background(GDI_COLOR_TRANSPARENT);

    gdi_layer_pop_and_restore_active();
    gdi_layer_set_source_key(TRUE, GDI_COLOR_TRANSPARENT);
    gdi_layer_clear_background(GDI_COLOR_TRANSPARENT);

#endif /* defined(GDI_USING_LAYER) */

    g_gx_trueman_context.is_new_game = FALSE;
    g_gx_trueman_context.is_gameover = FALSE;

    SetKeyHandler(mmi_gx_trueman_left_key_press, KEY_4, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_trueman_left_key_press, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_trueman_right_key_press, KEY_6, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_trueman_right_key_press, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_trueman_left_key_release, KEY_4, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_trueman_left_key_release, KEY_LEFT_ARROW, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_trueman_right_key_release, KEY_6, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_trueman_right_key_release, KEY_RIGHT_ARROW, KEY_EVENT_UP);

    SetKeyHandler(mmi_gx_trueman_flying_key_release, KEY_5, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_trueman_flying_key_press, KEY_5, KEY_EVENT_DOWN);

    gdi_layer_lock_frame_buffer();
    gdi_layer_push_and_set_active(g_gx_trueman_context.foreground);
    mmi_gx_trueman_draw_static_foreground();    
    gdi_layer_pop_and_restore_active();

    mmi_gx_trueman_draw_static_background();
    
    gdi_layer_unlock_frame_buffer();

    /* start game loop */
    mmi_gx_trueman_cyclic_timer();
}

#if defined(GDI_USING_LAYER)

/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_static_background
 * DESCRIPTION
 *  draw the moving background
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_static_background(void)
{
        gdi_layer_push_and_set_clip(
        0,
        0,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_LCD_HEIGHT - 1);

        gdi_image_draw_id(0, 0, (U16)IMG_ID_GX_TRUEMAN_BACKGROUND);

#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
        gdi_image_draw_id(MMI_GX_TRUEMAN_SCORE_X, MMI_GX_TRUEMAN_SCORE_Y, (U16)IMG_ID_GX_TRUEMAN_SCORE);
#else
    gdi_image_draw_id(
        MMI_GX_TRUEMAN_SCORE_X,
        MMI_GX_TRUEMAN_SCORE_Y,
        mmi_gfx_get_multilanguage_image_ID(
            mmi_trueman_language_index,
            IMG_ID_GX_TRUEMAN_SCORE_LANGUAGE0,
            MMI_TRUEMAN_STRING_COUNT,
            MMI_TRUEMAN_STRING_SCORE));
#endif

        gdi_layer_pop_clip();
        //gdi_layer_pop_and_restore_active();

}
#endif /* defined(GDI_USING_LAYER) */


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_exit_game
 * DESCRIPTION
 *  Exit Game [Callback required by GFX]
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_exit_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    gdi_handle base_layer_handle;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_gx_trueman_context.is_flying_key_pressed == TRUE)
    {
        mmi_gx_trueman_flying_key_release();
    }

#if defined(GDI_USING_LAYER)
    gdi_layer_flatten_to_base(g_gx_trueman_context.background, g_gx_trueman_context.foreground, 0, 0);
#endif

    gui_cancel_timer(mmi_gx_trueman_cyclic_timer);    /* cancle the looping timer */

#if defined(GDI_USING_LAYER)
    gdi_layer_free(g_gx_trueman_context.foreground);
    gdi_layer_multi_layer_disable();

#endif /* defined(GDI_USING_LAYER) */

}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_static_foreground
 * DESCRIPTION
 *  Game initilization
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_static_foreground(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/    

    gui_fill_rectangle(0, 0, MMI_GX_TRUEMAN_LCD_WIDTH - 1, MMI_GX_TRUEMAN_LCD_HEIGHT - 1, MMI_GX_TRUEMAN_MARGIN_COLOR);

    mmi_gx_trueman_draw_thorn();
    mmi_gx_trueman_draw_energy(g_gx_trueman_context.energy);

    gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);

}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_thorn
 * DESCRIPTION
 *  Draw thorns
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_thorn(void)
{
    gui_show_image(0, MMI_GX_TRUEMAN_GAME_ORIGIN_Y, (PU8) GetImage(IMG_ID_GX_TRUEMAN_THORN));
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_energy
 * DESCRIPTION
 *  Draw energy
 * PARAMETERS
 *  energy      [IN]        How many energy units need drawing
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_energy(U8 energy)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    MMI_ID_TYPE image_id;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gui_push_and_set_clip(0, 0, MMI_GX_TRUEMAN_LCD_WIDTH - 1, MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1);

    gui_fill_rectangle(MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X1, MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y1,
                       MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_X2, MMI_GX_TRUEMAN_ENERGY_RECT_MARGIN_Y2, MMI_GX_TRUEMAN_MARGIN_COLOR);

    if ( energy > 0 )
    {
        image_id = IMG_ID_GX_TRUEMAN_ENERGY_BAR_1 + energy - 1;
        gui_show_image(MMI_GX_TRUEMAN_ENERGY_X, MMI_GX_TRUEMAN_ENERGY_Y, (PU8) GetImage(image_id));
    }
    gui_pop_clip();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_init_game
 * DESCRIPTION
 *  Game initilization
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_init_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* init game */
    g_gx_trueman_context.is_left_pressed = FALSE;
    g_gx_trueman_context.is_right_pressed = FALSE;
    g_gx_trueman_context.is_flying_key_pressed = FALSE;
    g_gx_trueman_context.tick = 0;
    g_gx_trueman_context.energy = MMI_GX_TRUEMAN_ROLE_MAX_ENERGY;
    g_gx_trueman_context.game_grade = 0;

    /* set game speed */
    switch (g_gx_trueman_context.game_level)
    {
        case MMI_GX_TRUEMAN_EASY:
            g_gx_trueman_context.game_speed = MMI_GX_TRUEMAN_EASY_SPEED;
            break;
        case MMI_GX_TRUEMAN_NORMAL:
            g_gx_trueman_context.game_speed = MMI_GX_TRUEMAN_NORMAL_SPEED;
            break;
        case MMI_GX_TRUEMAN_HARD:
            g_gx_trueman_context.game_speed = MMI_GX_TRUEMAN_HARD_SPEED;
            break;
    }

    g_gx_trueman_context.role.x = MMI_GX_TRUEMAN_LCD_WIDTH / 2 - MMI_GX_TRUEMAN_ROLE_WIDTH / 2;
    g_gx_trueman_context.role.y = MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_THORN_HEIGHT + 1;
    g_gx_trueman_context.role.old_x = g_gx_trueman_context.role.x;
    g_gx_trueman_context.role.old_y = g_gx_trueman_context.role.y;
    g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
    g_gx_trueman_context.role.flying_time = MMI_GX_TRUEMAN_ROLE_FLYING_TIME;
    g_gx_trueman_context.role.invincible_time = 0;
    g_gx_trueman_context.role.current_step = NULL;

    g_gx_trueman_context.falling_direction = MMI_GX_TRUEMAN_FALLING_STRAIGHT;
    g_gx_trueman_context.walking_direction = MMI_GX_TRUEMAN_WALKING_STAND;

    mmi_gx_trueman_init_trueman_list();

#if defined(GDI_USING_LAYER)
    g_gx_trueman_context.first_bg_position_y = 0;
#endif /* defined(GDI_USING_LAYER) */
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_init_trueman_list
 * DESCRIPTION
 *  Initialize the linking list for steps
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_init_trueman_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < MMI_GX_TRUEMAN_STEP_COUNT - 1; i++)
    {
        g_gx_trueman_context.step[i].next = &(g_gx_trueman_context.step[i + 1]);
    }
    for (i = 1; i < MMI_GX_TRUEMAN_STEP_COUNT; i++)
    {
        g_gx_trueman_context.step[i].previous = &(g_gx_trueman_context.step[i - 1]);
    }

    g_gx_trueman_context.first_step = &(g_gx_trueman_context.step[0]);
    g_gx_trueman_context.last_step = g_gx_trueman_context.first_step;
    g_gx_trueman_context.first_empty_step = &(g_gx_trueman_context.step[1]);
    g_gx_trueman_context.last_empty_step = &(g_gx_trueman_context.step[MMI_GX_TRUEMAN_STEP_COUNT - 1]);
    g_gx_trueman_context.first_step->previous = NULL;
    g_gx_trueman_context.last_empty_step->next = NULL;

    /* set up the data of the first step */
    g_gx_trueman_context.first_step->x = MMI_GX_TRUEMAN_LCD_WIDTH / 2 - MMI_GX_TRUEMAN_STEP_WIDTH / 2;
    g_gx_trueman_context.first_step->old_x = g_gx_trueman_context.first_step->x;
    g_gx_trueman_context.first_step->y = MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1;
    g_gx_trueman_context.first_step->old_y = g_gx_trueman_context.first_step->y;
    g_gx_trueman_context.first_step->type = MMI_GX_TRUEMAN_NORMAL_STEP;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_framemove
 * DESCRIPTION
 *  Framemove - process the game logic
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_framemove(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    gx_trueman_step_struct *step;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* check if the role died */
    if (g_gx_trueman_context.energy == 0)
    {
        mmi_gx_trueman_gameover();
        return;
    }

    /* for every 15 seconds, restore the flying ability of the role if it lacks in */
    if (g_gx_trueman_context.role.flying_time == 0 && g_gx_trueman_context.tick % 150 == 0)
    {
        g_gx_trueman_context.role.flying_time = MMI_GX_TRUEMAN_ROLE_FLYING_TIME;
    }

    /* update the invincible time of the role */
    if (g_gx_trueman_context.role.invincible_time > 0)
    {
        g_gx_trueman_context.role.invincible_time = g_gx_trueman_context.role.invincible_time - 1;
    }
    /* update the position of the role */
    if (g_gx_trueman_context.is_left_pressed != FALSE)
    {
        g_gx_trueman_context.role.old_x = g_gx_trueman_context.role.x;
        g_gx_trueman_context.role.x = g_gx_trueman_context.role.x - MMI_GX_TRUEMAN_ROLE_SPEED;
        if (g_gx_trueman_context.role.x < 0)
        {
            g_gx_trueman_context.role.x = 0;
        }
    }
    else if (g_gx_trueman_context.is_right_pressed != FALSE)
    {
        g_gx_trueman_context.role.old_x = g_gx_trueman_context.role.x;
        g_gx_trueman_context.role.x = g_gx_trueman_context.role.x + MMI_GX_TRUEMAN_ROLE_SPEED;
        if (g_gx_trueman_context.role.x > MMI_GX_TRUEMAN_LCD_WIDTH - MMI_GX_TRUEMAN_ROLE_WIDTH)
        {
            g_gx_trueman_context.role.x = MMI_GX_TRUEMAN_LCD_WIDTH - MMI_GX_TRUEMAN_ROLE_WIDTH;
        }
    }
    else
    {
        g_gx_trueman_context.role.old_x = g_gx_trueman_context.role.x;
    }
    /* when the role is falling */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FALLING_STATE)
    {
        g_gx_trueman_context.role.old_y = g_gx_trueman_context.role.y;
        g_gx_trueman_context.role.y = g_gx_trueman_context.role.y + 2 * g_gx_trueman_context.game_speed;
        /* when the role is falling out of the screen, the game is over */
        if (g_gx_trueman_context.role.y > MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT)
        {
            mmi_gx_trueman_gameover();
            return;
        }
    }
    /* when the role is flying (the role is only allowed to fly when it's in the falling state) */
    /* check if it's allowed to fly */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FALLING_STATE && g_gx_trueman_context.role.flying_time > 0 &&
            g_gx_trueman_context.is_flying_key_pressed != FALSE)
    {
        g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FLYING_STATE;
        /* reset the previous step that the role stayed */
        g_gx_trueman_context.role.current_step = NULL;
    }
    /* the role is flying */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE && g_gx_trueman_context.role.flying_time > 0 &&
            g_gx_trueman_context.is_flying_key_pressed != FALSE)
    {

        GFX_PLAY_AUDIO_WAV(ManFly_wav, MANFLY_WAV, DEVICE_AUDIO_PLAY_ONCE);

        g_gx_trueman_context.role.old_y = g_gx_trueman_context.role.y;
        g_gx_trueman_context.role.y = g_gx_trueman_context.role.y - 2 * g_gx_trueman_context.game_speed;
        g_gx_trueman_context.role.flying_time = g_gx_trueman_context.role.flying_time - 1;
        /* when the flying time is over */
        if (g_gx_trueman_context.role.flying_time == 0)
        {
            g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
            g_gx_trueman_context.is_flying_key_pressed = FALSE;
        }
    }
    /* when the role is on the step, its y position is going up in the speed as background's */
    if (g_gx_trueman_context.role.state != MMI_GX_TRUEMAN_ROLE_FALLING_STATE &&
            g_gx_trueman_context.role.state != MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
    {
        g_gx_trueman_context.role.old_y = g_gx_trueman_context.role.y;
        g_gx_trueman_context.role.y = g_gx_trueman_context.role.y - g_gx_trueman_context.game_speed;
    }

    /* update positions of steps */
    for (step = g_gx_trueman_context.first_step; step != NULL && step != g_gx_trueman_context.first_empty_step;
            step = step->next)
    {
        step->old_x = step->x;
        step->old_y = step->y;
        step->y = step->y - g_gx_trueman_context.game_speed;
        /* if the step went out of the boundary, remove it. (it must be the first step in the list) */
        if (step->y + MMI_GX_TRUEMAN_STEP_HEIGHT <= MMI_GX_TRUEMAN_GAME_ORIGIN_Y - MMI_GX_TRUEMAN_STEP_HEIGHT)
        {
            g_gx_trueman_context.first_step = step->next;
            g_gx_trueman_context.first_step->previous = NULL;
            g_gx_trueman_context.last_empty_step->next = step;
            g_gx_trueman_context.last_empty_step = step;
            continue;
        }
    }

    /* for every MMI_GX_TRUEMAN_ROLE_HEIGHT + MMI_GX_TRUEMAN_STEP_HEIGHT pixels past. new() a new step. (it must be the last step in the list) */
    /* And update the score */
    if ((g_gx_trueman_context.tick + 1) % ((MMI_GX_TRUEMAN_ROLE_HEIGHT + MMI_GX_TRUEMAN_STEP_HEIGHT) / g_gx_trueman_context.game_speed + 1) == 0)
    {
        /* maintain its data structure */
        g_gx_trueman_context.last_step->next = g_gx_trueman_context.first_empty_step;
        g_gx_trueman_context.first_empty_step->previous = g_gx_trueman_context.last_step;
        g_gx_trueman_context.first_empty_step = g_gx_trueman_context.first_empty_step->next;
        g_gx_trueman_context.last_step = g_gx_trueman_context.last_step->next;
        /* initialize its data */
        g_gx_trueman_context.last_step->x = (rand() % (MMI_GX_TRUEMAN_LCD_WIDTH - MMI_GX_TRUEMAN_STEP_WIDTH)) + 1;
        g_gx_trueman_context.last_step->old_x = g_gx_trueman_context.last_step->x;
        g_gx_trueman_context.last_step->y = MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1;
        g_gx_trueman_context.last_step->old_y = g_gx_trueman_context.last_step->y;
        g_gx_trueman_context.last_step->type = mmi_gx_trueman_get_trueman_type();
        if (g_gx_trueman_context.last_step->type == MMI_GX_TRUEMAN_FLOATING_STEP)
        {
            g_gx_trueman_context.last_step->life_time = MMI_GX_TRUEMAN_STEP_LIFE_TIME;
        }

        /* update the score */
        g_gx_trueman_context.game_grade = ( g_gx_trueman_context.game_grade != 0xFFFF )?(g_gx_trueman_context.game_grade + 1):0xFFFF;
    }

    /* collision detection */
    /* if the role touched the top thorns */
    if (g_gx_trueman_context.role.y < MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_THORN_HEIGHT)
    {
        if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
        {
            g_gx_trueman_context.is_flying_key_pressed = FALSE;
            g_gx_trueman_context.role.flying_time = 0;
        }
        g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
        if (g_gx_trueman_context.role.invincible_time == 0)
        {

            GFX_PLAY_AUDIO_WAV(StepOuch_wav, STEPOUCH_WAV, DEVICE_AUDIO_PLAY_ONCE);

            /* /GFX_PLAY_AUDIO_WAV(StepOuch_wav, STEPOUCH_WAV, DEVICE_AUDIO_PLAY_ONCE); */
            g_gx_trueman_context.role.invincible_time = MMI_GX_TRUEMAN_INVINCIBLE_INTERVAL;
            g_gx_trueman_context.energy = g_gx_trueman_context.energy - 1;
            GFX_PLAY_VIBRATION();
        }
    }
    /* when the role is falling, check if it lands on the step */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FALLING_STATE)
    {
        if (g_gx_trueman_context.is_left_pressed != FALSE)
        {
            g_gx_trueman_context.falling_direction = MMI_GX_TRUEMAN_FALLING_LEFT;
        }
        else if (g_gx_trueman_context.is_right_pressed != FALSE)
        {
            g_gx_trueman_context.falling_direction = MMI_GX_TRUEMAN_FALLING_RIGHT;
        }

        for (step = g_gx_trueman_context.first_step; step != NULL && step != g_gx_trueman_context.first_empty_step;
                step = step->next)
        {
            /* if the role is on */
            if (g_gx_trueman_context.role.current_step != step &&
                    g_gx_trueman_context.role.x + (MMI_GX_TRUEMAN_ROLE_WIDTH - MMI_GX_TRUEMAN_STEP_BORDER_MARGIN) >= step->x &&
                    g_gx_trueman_context.role.x < step->x + (MMI_GX_TRUEMAN_STEP_WIDTH -MMI_GX_TRUEMAN_STEP_BORDER_MARGIN) &&
                    g_gx_trueman_context.role.y + MMI_GX_TRUEMAN_ROLE_HEIGHT >= step->y &&
                    g_gx_trueman_context.role.y + MMI_GX_TRUEMAN_ROLE_HEIGHT <= step->y + 2 * MMI_GX_TRUEMAN_STEP_HEIGHT)
            {

                GFX_PLAY_AUDIO_WAV(StepLand_wav, STEPLAND_WAV, DEVICE_AUDIO_PLAY_ONCE);

                /* //GFX_PLAY_AUDIO_WAV(StepLand_wav, STEPLAND_WAV, DEVICE_AUDIO_PLAY_ONCE); */
                g_gx_trueman_context.role.y = step->y - MMI_GX_TRUEMAN_ROLE_HEIGHT;
                g_gx_trueman_context.role.current_step = step;

                /* if the step is a normal step */
                if (step->type == MMI_GX_TRUEMAN_NORMAL_STEP || g_gx_trueman_context.role.invincible_time > 0)
                {
                    g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_NORMAL_STATE;
                    /* increase the energy of the role */
                    if (step->type != MMI_GX_TRUEMAN_THORN_STEP)
                    {
                        g_gx_trueman_context.energy = g_gx_trueman_context.energy + 1;
                    }
                    if (g_gx_trueman_context.energy > MMI_GX_TRUEMAN_ROLE_MAX_ENERGY)
                    {
                        g_gx_trueman_context.energy = MMI_GX_TRUEMAN_ROLE_MAX_ENERGY;
                    }
                }
                /* if the step is a thorn-step */
                else if (step->type == MMI_GX_TRUEMAN_THORN_STEP)
                {

                    GFX_PLAY_AUDIO_WAV(StepOuch_wav, STEPOUCH_WAV, DEVICE_AUDIO_PLAY_ONCE);
                    /* /GFX_PLAY_AUDIO_WAV(StepOuch_wav, STEPOUCH_WAV, DEVICE_AUDIO_PLAY_ONCE); */
                    g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_DYING_STATE;
                    g_gx_trueman_context.role.invincible_time = MMI_GX_TRUEMAN_INVINCIBLE_INTERVAL;
                    g_gx_trueman_context.energy = g_gx_trueman_context.energy - 1;
                    GFX_PLAY_VIBRATION();
                }
                /* if the step is a floating step */
                else if (step->type == MMI_GX_TRUEMAN_FLOATING_STEP)
                {
                    g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_NORMAL_STATE;
                    step->life_time = MMI_GX_TRUEMAN_STEP_LIFE_TIME;
                    /* increase the energy of the role */
                    g_gx_trueman_context.energy = g_gx_trueman_context.energy + 1;
                    if (g_gx_trueman_context.energy > MMI_GX_TRUEMAN_ROLE_MAX_ENERGY)
                    {
                        g_gx_trueman_context.energy = MMI_GX_TRUEMAN_ROLE_MAX_ENERGY;
                    }
                }
                /* determine the automatic movement of the role */
                /* if the role is falling with direction, the movement should be consistent with the falling direction */
                if (g_gx_trueman_context.falling_direction == MMI_GX_TRUEMAN_FALLING_LEFT ||
                        g_gx_trueman_context.falling_direction == MMI_GX_TRUEMAN_FALLING_RIGHT)
                {
                    /* falling left */
                    if (g_gx_trueman_context.falling_direction == MMI_GX_TRUEMAN_FALLING_LEFT)
                    {
                        g_gx_trueman_context.role.automatic_x_vector = -MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED;
                    }
                    /* falling right */
                    else
                    {
                        g_gx_trueman_context.role.automatic_x_vector = MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED;
                    }
                }
                /* if the role is falling without direction, the movement is determined randomly */
                else
                {
                    if (rand() % 2 == 0)
                    {
                        g_gx_trueman_context.role.automatic_x_vector = MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED;
                    }
                    else
                    {
                        g_gx_trueman_context.role.automatic_x_vector = -MMI_GX_TRUEMAN_ROLE_RANDOM_SPEED;
                    }
                }

                g_gx_trueman_context.falling_direction = MMI_GX_TRUEMAN_FALLING_STRAIGHT;

                break;
            }
        }
    }
    /* when the role is flying, check if it touches the bottom of any steps */
    else if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
    {
        for (step = g_gx_trueman_context.first_step; step != NULL && step != g_gx_trueman_context.first_empty_step;
                step = step->next)
        {
            if (g_gx_trueman_context.role.x + (MMI_GX_TRUEMAN_ROLE_WIDTH - MMI_GX_TRUEMAN_STEP_BORDER_MARGIN) >= step->x &&
                    g_gx_trueman_context.role.x < step->x + (MMI_GX_TRUEMAN_STEP_WIDTH -MMI_GX_TRUEMAN_STEP_BORDER_MARGIN) &&
                    g_gx_trueman_context.role.y <= step->y + MMI_GX_TRUEMAN_STEP_HEIGHT - 1 &&
                    g_gx_trueman_context.role.y > step->y - MMI_GX_TRUEMAN_STEP_HEIGHT)
            {
                g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
                g_gx_trueman_context.is_flying_key_pressed = FALSE;
                g_gx_trueman_context.role.flying_time = 0;
                break;
            }
        }
    }
    /* when the role is on a step */
    else if (g_gx_trueman_context.role.state != MMI_GX_TRUEMAN_ROLE_FALLING_STATE &&
             g_gx_trueman_context.role.state != MMI_GX_TRUEMAN_ROLE_FALLING_STATE)
    {
        /* if there is no key press, the role will walk automaticly */
        /* Disable this feature at 2004/10/05 */
        if (FALSE /* g_gx_trueman_context.is_left_pressed != TRUE && g_gx_trueman_context.is_right_pressed != TRUE */ )
        {
            g_gx_trueman_context.role.old_x = g_gx_trueman_context.role.x;
            g_gx_trueman_context.role.x = g_gx_trueman_context.role.x + g_gx_trueman_context.role.automatic_x_vector;
            if (g_gx_trueman_context.role.x < 0)
            {
                g_gx_trueman_context.role.x = 0;
            }
            if (g_gx_trueman_context.role.x > MMI_GX_TRUEMAN_LCD_WIDTH - MMI_GX_TRUEMAN_ROLE_WIDTH)
            {
                g_gx_trueman_context.role.x = MMI_GX_TRUEMAN_LCD_WIDTH - MMI_GX_TRUEMAN_ROLE_WIDTH;
            }
        }
        /* if the role is on a floating step */
        if (g_gx_trueman_context.role.current_step->type == MMI_GX_TRUEMAN_FLOATING_STEP)
        {
            step = g_gx_trueman_context.role.current_step;
            step->life_time = step->life_time - 1;

            /* when the step begin to break, play sound. */
            if (step->life_time == MMI_GX_TRUEMAN_STEP_LIFE_TIME / 2)
            {

                GFX_PLAY_AUDIO_WAV(StepBreak_wav, STEPBREAK_WAV, DEVICE_AUDIO_PLAY_ONCE);

                /* //GFX_PLAY_AUDIO_WAV(StepBreak_wav, STEPBREAK_WAV, DEVICE_AUDIO_PLAY_ONCE); */
            }
            /* when the step begin to disappear, play sound. */
            else if (step->life_time == 1)
            {

                GFX_PLAY_AUDIO_WAV(StepBreak_wav, STEPBREAK_WAV, DEVICE_AUDIO_PLAY_ONCE);

                /* /GFX_PLAY_AUDIO_WAV(StepBreak_wav, STEPBREAK_WAV, DEVICE_AUDIO_PLAY_ONCE); */
            }

            /* if the life time of the step ends, remove it */
            if (step->life_time == 0)
            {
                /* if it's the first step */
                if (step == g_gx_trueman_context.first_step)
                {
                    g_gx_trueman_context.first_step = step->next;
                    g_gx_trueman_context.first_step->previous = NULL;
                    step->previous = g_gx_trueman_context.last_empty_step;
                    g_gx_trueman_context.last_empty_step->next = step;
                    step->next = NULL;
                    g_gx_trueman_context.last_empty_step = step;
                }
                /* if it's the last step */
                else if (step == g_gx_trueman_context.last_step)
                {
                    g_gx_trueman_context.last_step = step->previous;
                    g_gx_trueman_context.last_step->next = step->next;
                    g_gx_trueman_context.first_empty_step->previous = step->previous;
                    g_gx_trueman_context.last_empty_step->next = step;
                    g_gx_trueman_context.last_empty_step = step;
                    step->next = NULL;
                }
                else
                {
                    step->previous->next = step->next;
                    step->next->previous = step->previous;
                    g_gx_trueman_context.last_empty_step->next = step;
                    g_gx_trueman_context.last_empty_step = step;
                    step->next = NULL;
                }
                g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;

                gdi_layer_push_and_set_active(g_gx_trueman_context.foreground);
#if defined(GDI_USING_LAYER)
                gdi_draw_solid_rect(
                    step->old_x,
                    step->old_y,
                    step->old_x + MMI_GX_TRUEMAN_STEP_WIDTH - 1,
                    step->old_y + MMI_GX_TRUEMAN_STEP_HEIGHT - 1,
                    GDI_COLOR_TRANSPARENT);
#else /* defined(GDI_USING_LAYER) */
                gui_fill_rectangle(
                    step->old_x,
                    step->old_y,
                    step->old_x + MMI_GX_TRUEMAN_STEP_WIDTH - 1,
                    step->old_y + MMI_GX_TRUEMAN_STEP_HEIGHT - 1,
                    MMI_GX_TRUEMAN_BACKGROUND_COLOR);
#endif /* defined(GDI_USING_LAYER) */
                gdi_layer_pop_and_restore_active();
            }
        }

        /* check if the role go out of the region of the step */
        if (g_gx_trueman_context.role.x + (MMI_GX_TRUEMAN_ROLE_WIDTH - MMI_GX_TRUEMAN_STEP_BORDER_MARGIN) < g_gx_trueman_context.role.current_step->x ||
                g_gx_trueman_context.role.x >= g_gx_trueman_context.role.current_step->x + (MMI_GX_TRUEMAN_STEP_WIDTH - MMI_GX_TRUEMAN_STEP_BORDER_MARGIN ))
        {
            g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
        }
    }

}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_render
 * DESCRIPTION
 *  Render the game images
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_render(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    gx_trueman_step_struct *step;
    MMI_ID_TYPE image = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* if the game is over, we don't have to draw anything */
    if (g_gx_trueman_context.is_gameover != FALSE)
    {
        return;
    }

#if defined(GDI_USING_LAYER)
    gdi_layer_push_and_set_active(g_gx_trueman_context.foreground);
#endif /* defined(GDI_USING_LAYER) */

    gdi_layer_push_and_set_clip(
        0,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1);

    /* erase gameplay screen */
#if defined(GDI_USING_LAYER)
    gdi_draw_solid_rect(
        0,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1,
        GDI_COLOR_TRANSPARENT);
#else /* defined(GDI_USING_LAYER) */
    gui_fill_rectangle(
        0,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1,
        MMI_GX_TRUEMAN_BACKGROUND_COLOR);
#endif /* defined(GDI_USING_LAYER) */

    MMI_GAME_GET_START_TIME("START DRAW ENERGY & SCORE");
    /* draw flying-mark & score & energy */
    gui_set_clip(0, 0, MMI_GX_TRUEMAN_LCD_WIDTH - 1, MMI_GX_TRUEMAN_GAME_ORIGIN_Y - 1);
    /* draw energy */
    mmi_gx_trueman_draw_energy(g_gx_trueman_context.energy);
    /* draw score */
    mmi_gx_trueman_draw_score();
    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAW ENERGY & SCORE TIME IS %d");

    /* draw flying mark or not */
    MMI_GAME_GET_START_TIME("START DRAW FLY");
    if (g_gx_trueman_context.role.flying_time > 0)
    {
#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
        gui_show_image(MMI_GX_TRUEMAN_FLYING_MARK_X1, MMI_GX_TRUEMAN_FLYING_MARK_Y1, (PU8) GetImage(IMG_ID_GX_TRUEMAN_FLYING_MARK));
#else
        gui_show_image(
            MMI_GX_TRUEMAN_FLYING_MARK_X1,
            MMI_GX_TRUEMAN_FLYING_MARK_Y1,
            (PU8) GetImage(
                mmi_gfx_get_multilanguage_image_ID(
                    mmi_trueman_language_index,
                    IMG_ID_GX_TRUEMAN_SCORE_LANGUAGE0,
                    MMI_TRUEMAN_STRING_COUNT,
                    MMI_TRUEMAN_STRING_FLY_MARK)));
#endif
    }
    /* erase the mark */
    else
    {
#if defined(GDI_USING_LAYER)
        gui_fill_rectangle(MMI_GX_TRUEMAN_FLYING_MARK_X1, MMI_GX_TRUEMAN_FLYING_MARK_Y1,
                           MMI_GX_TRUEMAN_FLYING_MARK_X2, MMI_GX_TRUEMAN_FLYING_MARK_Y2, MMI_GX_TRUEMAN_MARGIN_COLOR);
#else /* defined(GDI_USING_LAYER) */
        gui_fill_rectangle(MMI_GX_TRUEMAN_FLYING_MARK_X1, MMI_GX_TRUEMAN_FLYING_MARK_Y1,
                           MMI_GX_TRUEMAN_FLYING_MARK_X2, MMI_GX_TRUEMAN_FLYING_MARK_Y2, MMI_GX_TRUEMAN_BACKGROUND_COLOR);
#endif /* defined(GDI_USING_LAYER) */
    }
    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAY FLY TIME IS %d");

    gui_set_clip(
        0,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_GAME_ORIGIN_Y + MMI_GX_TRUEMAN_GAME_HEIGHT - 1);

    /* draw steps */
    MMI_GAME_GET_START_TIME("START DRAW STEP");
    for (step = g_gx_trueman_context.first_step; step != NULL && step != g_gx_trueman_context.first_empty_step;
            step = step->next)
    {
        switch (step->type)
        {
            case MMI_GX_TRUEMAN_NORMAL_STEP:
                image = IMG_ID_GX_TRUEMAN_STEP;
                break;
            case MMI_GX_TRUEMAN_FLOATING_STEP:
                if (step->life_time > MMI_GX_TRUEMAN_STEP_LIFE_TIME / 2)
                {
                    image = IMG_ID_GX_TRUEMAN_FLOAT_STEP_1;
                }
                /* show the broken one */
                else
                {
                    image = IMG_ID_GX_TRUEMAN_FLOAT_STEP_2;
                }
                break;
            case MMI_GX_TRUEMAN_THORN_STEP:
                /* if the step is a thorn-step, it is longer in height */
                image = IMG_ID_GX_TRUEMAN_THORN_STEP;
                break;
        }
        gui_show_image(step->x, step->y - 1, (PU8) GetImage(image));
    }
    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAW STEP TIME IS %d");

    /* draw the role */
    MMI_GAME_GET_START_TIME("START DRAW ROLE");
    if (g_gx_trueman_context.role.invincible_time == 0 ||
            (g_gx_trueman_context.role.invincible_time != 0 && (g_gx_trueman_context.tick % 4) / 2 == 0))
    {
        /* when the role is falling */
        if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FALLING_STATE)
        {
            MMI_ID_TYPE image;

            if ( g_gx_trueman_context.walking_direction == MMI_GX_TRUEMAN_WALKING_STAND )
            {
                image = IMG_ID_GX_TRUEMAN_ROLE;
            }
            else
            {
                image = IMG_ID_GX_TRUEMAN_ROLE_FALLING_0 + g_gx_trueman_context.walking_direction;
            }
            gui_show_image(
                (S32) (g_gx_trueman_context.role.x),
                (S32) (g_gx_trueman_context.role.y),
                (PU8) GetImage(image));            
        }
        /* when the role is flying */
        else if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
        {
            gui_show_image(
                (S32) (g_gx_trueman_context.role.x),
                (S32) (g_gx_trueman_context.role.y),
                (PU8) GetImage(IMG_ID_GX_TRUEMAN_ROLE_FLYING));
        }
        /* when the role is touch the thorn */
        else if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_DYING_STATE)
        {
            gui_show_image(
                g_gx_trueman_context.role.x,
                g_gx_trueman_context.role.y,
                (PU8) GetImage(IMG_ID_GX_TRUEMAN_ROLE_DYING));
            g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_NORMAL_STATE;
        }
        /* the role is walking */
        else
        {
            if (g_gx_trueman_context.is_right_pressed != TRUE && g_gx_trueman_context.is_left_pressed != TRUE)
            {
                /* when the role is on the step without walking */
                image = IMG_ID_GX_TRUEMAN_ROLE;
                gui_show_image(g_gx_trueman_context.role.x, g_gx_trueman_context.role.y, (PU8) GetImage((U16) image));
            }
            else
            {
                /* going right */
                if (g_gx_trueman_context.is_right_pressed != FALSE)
                {
                    image = IMG_ID_GX_TRUEMAN_ROLE_RIGHT_0;
                }
                /* going left */
                else if (g_gx_trueman_context.is_left_pressed != FALSE)
                {
                    image = IMG_ID_GX_TRUEMAN_ROLE_LEFT_0;
                }
                gui_show_image(
                    g_gx_trueman_context.role.x,
                    g_gx_trueman_context.role.y,
                    (PU8) GetImage((U16) (image + (g_gx_trueman_context.tick % 2))));
            }
        }
    }

    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAW ROLE TIME IS %d");

    /* draw top thorns */
    MMI_GAME_GET_START_TIME("START DRAW THORN");
    mmi_gx_trueman_draw_thorn();
    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAW THORN TIME IS %d");

    MMI_GAME_GET_START_TIME("START DRAW BLT");
#if defined(GDI_USING_LAYER)
    gdi_layer_blt(
        g_gx_trueman_context.background,
        g_gx_trueman_context.foreground,
        0,
        0,
        0,
        0,
        MMI_GX_TRUEMAN_LCD_WIDTH - 1,
        MMI_GX_TRUEMAN_LCD_HEIGHT - 1);

    gdi_layer_pop_clip();
    //gdi_layer_set_active(g_gx_trueman_context.background);
    gdi_layer_pop_and_restore_active();
#else /* defined(GDI_USING_LAYER) */
    gui_pop_clip();
    gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
#endif /* defined(GDI_USING_LAYER) */
    MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP DRAW BLT TIME IS %d");
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_draw_score
 * DESCRIPTION
 *  Draw score
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_draw_score(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S16 tmp;
    S16 position_shift;
    MMI_ID_TYPE image_id;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    tmp = g_gx_trueman_context.game_grade;

    gui_fill_rectangle(MMI_GX_TRUEMAN_BOX_X + 2, MMI_GX_TRUEMAN_SCORE_SHIFT_Y -1 ,
                       MMI_GX_TRUEMAN_BOX_X + MMI_GX_TRUEMAN_BOX_WIDTH - 2, MMI_GX_TRUEMAN_SCORE_SHIFT_Y + MMI_GX_TRUEMAN_DIGIT_HEIGHT + 1, MMI_GX_TRUEMAN_MARGIN_COLOR);

    position_shift = MMI_GX_TRUEMAN_SCORE_SHIFT_X;

    do
    {
        image_id = IMG_ID_GX_TRUEMAN_NUMBER_0 + (tmp % 10);
        tmp = tmp / 10;
        gui_show_image(position_shift, MMI_GX_TRUEMAN_SCORE_SHIFT_Y, (PU8) GetImage(image_id));

    #if defined(__MMI_MAINLCD_176X220__)
        position_shift = position_shift - MMI_GX_TRUEMAN_DIGIT_WIDTH - 1;
#else
        position_shift = position_shift - MMI_GX_TRUEMAN_DIGIT_WIDTH;
#endif

    }
    while (tmp != 0);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_gameover
 * DESCRIPTION
 *  Gameover function
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_gameover(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.is_gameover = TRUE;
    g_gx_trueman_context.is_new_game = TRUE;

    /* call this function to draw gameover screen */
    mmi_gfx_entry_gameover_screen();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_cyclic_timer
 * DESCRIPTION
 *  Timer trigger function - looping
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_cyclic_timer(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.tick = g_gx_trueman_context.tick + 1;

    gui_start_timer(g_gx_trueman_context.timer_elapse, mmi_gx_trueman_cyclic_timer);

    if (g_gx_trueman_context.is_gameover == FALSE)
    {
        U32 start_time, end_time, durations;
        kal_get_time(&start_time);
        MMI_GAME_GET_START_TIME("START FRAMEMOVE");
        mmi_gx_trueman_framemove();
        MMI_GAME_GET_STOP_TIME_AND_PRINT_TRACE("STOP FRAMEMOVE TIME IS %d");
        mmi_gx_trueman_render();
        kal_get_time(&end_time);
        durations = kal_ticks_to_milli_secs(end_time - start_time);
        kal_prompt_trace(MOD_MMI, "OMG, the total render time is %d", durations);
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_get_trueman_type
 * DESCRIPTION
 *  Decide the type of the step according to some distribution
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
U8 mmi_gx_trueman_get_trueman_type(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 tmp;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Probability => normal: thorn: floating = 1: 2: 1 */
    tmp = rand() % (MMI_GX_TRUEMAN_STEP_TYPE_COUNT + 1);

    if (tmp == 0)
    {
        return MMI_GX_TRUEMAN_NORMAL_STEP;
    }
    else if (tmp == MMI_GX_TRUEMAN_STEP_TYPE_COUNT)
    {
        return MMI_GX_TRUEMAN_FLOATING_STEP;
    }
    else
    {
        return MMI_GX_TRUEMAN_THORN_STEP;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_left_key_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_left_key_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.is_left_pressed = FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_left_key_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_left_key_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.is_left_pressed = TRUE;

    g_gx_trueman_context.walking_direction = MMI_GX_TRUEMAN_WALKING_LEFT;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_right_key_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_right_key_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.is_right_pressed = FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_right_key_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_right_key_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_trueman_context.is_right_pressed = TRUE;

    g_gx_trueman_context.walking_direction = MMI_GX_TRUEMAN_WALKING_RIGHT;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_flying_key_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_flying_key_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* only when the role is in the falling state the flying key is available */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FALLING_STATE && g_gx_trueman_context.role.flying_time == MMI_GX_TRUEMAN_ROLE_FLYING_TIME )
    {
        g_gx_trueman_context.is_flying_key_pressed = TRUE;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_trueman_flying_key_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 *  viod(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_trueman_flying_key_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* only when the role is in the falling state the flying key is available */
    if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
    {
        g_gx_trueman_context.is_flying_key_pressed = FALSE;
        g_gx_trueman_context.role.flying_time = 0;

        /* when player releases the key while flying, the role return to the falling state */
        if (g_gx_trueman_context.role.state == MMI_GX_TRUEMAN_ROLE_FLYING_STATE)
        {
            g_gx_trueman_context.role.state = MMI_GX_TRUEMAN_ROLE_FALLING_STATE;
        }
    }
}

#endif  //defined(__MMI_GAME_TRUEMAN__) || defined(__MMI_GAME_CHICKEN__) || defined(__MMI_GAME_ROBOT__)

